/************************************************************************************
* Copyright (C) 2008 supesoft.com,All Rights Reserved *
* File: *
* EventMessage.cs *
* Description: *
* 日誌消息類 *
* Author: *
* Lzppcc *
* [email protected] *
* http://www.supesoft.com *
* Finish DateTime: *
* 2007年8月6日 *
* History: *
***********************************************************************************/
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
using System.IO.Compression;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters.Binary;
using FrameWork.Components;
namespace FrameWork
{
/// <summary>
/// 日誌消息類
/// </summary>
public class EventMessage
{
/// <summary>
/// 信息提示類
/// </summary>
/// <param name="M_Type">類型1:操作日誌2:安全日誌</param>
/// <param name="M_Title">標題</param>
/// <param name="M_Body">內容</param>
/// <param name="M_IconType">Icon類型</param>
/// <param name="Url">Url</param>
public static void MessageBox(int M_Type, string M_Title, string M_Body, Icon_Type M_IconType,string Url)
{
MessageBox(M_Type, M_Title, M_Body, M_IconType, Url,UrlType.Href);
}
/// <summary>
/// 信息提示類
/// </summary>
/// <param name="M_Type">類型1:操作日誌2:安全日誌</param>
/// <param name="M_Title">標題</param>
/// <param name="M_Body">內容</param>
/// <param name="M_IconType">Icon類型</param>
/// <param name="Url">Url</param>
/// <param name="ReturnScript">執行Script腳本字符串(需加<script></script>)</param>
public static void MessageBox(int M_Type, string M_Title, string M_Body, Icon_Type M_IconType, string Url, string ReturnScript)
{
MessageBox(M_Type, M_Title, M_Body, M_IconType, true, Url, UrlType.Href, ReturnScript);
}
/// <summary>
/// 信息提示類
/// </summary>
/// <param name="M_Type">類型1:操作日誌2:安全日誌</param>
/// <param name="M_Title">標題</param>
/// <param name="M_Body">內容</param>
/// <param name="M_IconType">Icon類型</param>
/// <param name="Url">Url</param>
/// <param name="M_UrlType">按鈕鏈接類型</param>
public static void MessageBox(int M_Type, string M_Title, string M_Body, Icon_Type M_IconType, string Url,UrlType M_UrlType)
{
MessageBox(M_Type, M_Title, M_Body, M_IconType, true, Url, M_UrlType,"");
}
/// <summary>
/// 信息提示類
/// </summary>
/// <param name="M_Type">類型1:操作日誌2:安全日誌</param>
/// <param name="M_Title">標題</param>
/// <param name="M_Body">內容</param>
/// <param name="M_IconType">icon類型</param>
/// <param name="M_WriteToDB">是否寫入DB</param>
/// <param name="Url">鏈接地址</param>
/// <param name="M_UrlType">鏈接類型</param>
/// <param name="ReturnScript">執行Script腳本字符串(需加<script></script>)</param>
public static void MessageBox(int M_Type, string M_Title, string M_Body, Icon_Type M_IconType, bool M_WriteToDB, string Url, UrlType M_UrlType,string ReturnScript)
{
List<sys_NavigationUrl> M_ButtonList = new List<sys_NavigationUrl>();
M_ButtonList.Add(new sys_NavigationUrl("確定", Url, "", M_UrlType, true));
MessageBox(M_Type, M_Title, M_Body, M_IconType, M_WriteToDB, M_ButtonList,ReturnScript);
}
/// <summary>
/// 信息提示
/// </summary>
/// <param name="M_Type">類型1:操作日誌2:安全日誌</param>
/// <param name="M_Title">標題</param>
/// <param name="M_Body">內容</param>
/// <param name="M_IconType">icon類型</param>
/// <param name="M_WriteToDB">是否寫入db</param>
/// <param name="M_ButtonList">按鈕類型</param>
/// <param name="M_ReturnScript">執行Script腳本字符串(需加<script></script>)</param>
public static void MessageBox(int M_Type, string M_Title, string M_Body, Icon_Type M_IconType, bool M_WriteToDB, List<sys_NavigationUrl> M_ButtonList, string M_ReturnScript)
{
MessageBox mbx = new MessageBox();
mbx.M_Body = M_Body;
mbx.M_ButtonList = M_ButtonList;
mbx.M_IconType = M_IconType;
mbx.M_Title = M_Title;
mbx.M_Type = M_Type;
mbx.M_WriteToDB = M_WriteToDB;
mbx.M_ReturnScript = M_ReturnScript;
MessageBox(mbx);
}
/// <summary>
/// 信息提示
/// </summary>
/// <param name="MBx">信息提示類</param>
public static void MessageBox(MessageBox MBx)
{
if (MBx.M_WriteToDB)
{
EventWriteDB(MBx.M_Type, MBx.M_Body);
}
if (MBx.M_ButtonList.Count > 0)
{
System.Web.HttpContext.Current.Response.Cookies[string.Format("{0}-MessageValue",Common.Get_CookiesName)].Value = Serializable_MessageBox(Serializable_MessageBox(MBx),true);
//System.Web.HttpContext.Current.Response.Cookies[string.Format("{0}-MessageValue1", Common.Get_CookiesName)].Value = Serializable_MessageBox(Serializable_MessageBox(MBx), false);
//System.Web.HttpContext.Current.Session[string.Format("{0}-MessageValue", Common.Get_CookiesName)] = MBx;
//FrameWorkCache.Instance().Insert(string.Format("{0}-MessageValue", Common.Get_CookiesName), MBx);
System.Web.HttpContext.Current.Response.Redirect(string.Format("~/Manager/Messages.aspx?OPID={0}",Common.RndNum(5)));
}
}
/// <summary>
/// 寫入日誌到DB
/// </summary>
/// <param name="E_Type">日誌類型:日記類型,1:操作日記2:安全日誌</param>
/// <param name="E_Record">日誌內容</param>
public static void EventWriteDB(int E_Type, string E_Record)
{
EventWriteDB(E_Type, E_Record, Common.Get_UserID);
}
/// <summary>
/// 寫入日誌到DB
/// </summary>
/// <param name="E_Type">日誌類型:日記類型,1:操作日記2:安全日誌</param>
/// <param name="E_Record">日誌內容</param>
/// <param name="userid">關聯用戶id</param>
public static void EventWriteDB(int E_Type, string E_Record, int userid)
{
sys_EventTable s_Et = new sys_EventTable();
s_Et.E_DateTime = DateTime.Now;
s_Et.E_From = Common.GetScriptUrl;
s_Et.E_IP = Common.GetIPAddress();
s_Et.E_Record = E_Record;
s_Et.E_UserID = userid;
s_Et.E_U_LoginName = UserData.Get_sys_UserTable(s_Et.E_UserID).U_LoginName;
s_Et.E_Type = E_Type;
s_Et.DB_Option_Action_ = "Insert";
Permission PMI = FrameWorkPermission.Get_Permission;
if (PMI != null)
{
s_Et.E_ApplicationID = PMI.ApplicationID;
s_Et.E_A_AppName = BusinessFacade.sys_ApplicationsDisp(PMI.ApplicationID).A_AppName;
s_Et.E_M_PageCode = PMI.PageCode;
s_Et.E_M_Name = BusinessFacade.sys_ModuleDisp(PMI.ApplicationID, PMI.PageCode).M_CName;
}
BusinessFacade.sys_EventInsertUpdate(s_Et);
}
/// <summary>
/// 序列化MessageBox類
/// </summary>
/// <param name="MBx">MessageBox類</param>
/// <returns>字符數組</returns>
public static byte[] Serializable_MessageBox(MessageBox MBx)
{
IFormatter formatter = new BinaryFormatter();
MemoryStream ms = new MemoryStream();
byte[] b;
formatter.Serialize(ms, MBx);
ms.Position = 0;
b = new byte[ms.Length];
ms.Read(b, 0, b.Length);
ms.Close();
return b;
}
/// <summary>
/// 將字節數組轉爲ASCII字符
/// </summary>
/// <param name="MessageArray">字節數組</param>
/// <returns></returns>
public static string Serializable_MessageBox(byte[] MessageArray)
{
return Convert.ToBase64String(MessageArray);
}
/// <summary>
/// 將字節數組轉爲ASCII字符(是否進行Gzip壓縮)
/// </summary>
/// <param name="MessageArray">字節數組</param>
/// <param name="isgzip">是否啓用gzip</param>
/// <returns>返回字符</returns>
public static string Serializable_MessageBox(byte[] MessageArray, bool isgzip)
{
if (isgzip)
{
MemoryStream ms = new MemoryStream();
Stream s = new GZipStream(ms, CompressionMode.Compress);
s.Write(MessageArray, 0, MessageArray.Length);
s.Close();
MessageArray = (byte[])ms.ToArray();
ms.Dispose();
ms.Close();
s.Dispose();
}
return Serializable_MessageBox(MessageArray);
}
/// <summary>
/// 反序列化MessageBox類
/// </summary>
/// <param name="BytArray">字節內容</param>
/// <returns></returns>
public static MessageBox Deserialize_MessageBox(byte[] BytArray)
{
IFormatter formatter = new BinaryFormatter();
MemoryStream ms = new MemoryStream();
ms.Write(BytArray, 0, BytArray.Length);
ms.Position = 0;
MessageBox MBx = (MessageBox)formatter.Deserialize(ms);
return MBx;
}
/// <summary>
/// 將字符按ASCII轉爲字節數組
/// </summary>
/// <param name="Messages">字符</param>
/// <returns>字節流</returns>
public static byte[] Deserialize_MessageBox(string Messages)
{
return Convert.FromBase64String(Messages);
}
/// <summary>
/// 將字符按ASCII轉爲字節數組(是否進行Gzip壓縮)
/// </summary>
/// <param name="Messages">字符</param>
/// <param name="isgzip">字符是否進行過gzip壓縮</param>
/// <returns>字節流</returns>
public static byte[] Deserialize_MessageBox(string Messages,bool isgzip)
{
byte[] BytArray = Deserialize_MessageBox(Messages);
if (isgzip)
{
MemoryStream ms = new MemoryStream();
GZipStream s = new GZipStream(new MemoryStream(BytArray), CompressionMode.Decompress);
byte[] bytes = new byte[4096];
int n;
while ((n = s.Read(bytes, 0, bytes.Length)) != 0)
{
ms.Write(bytes, 0, n);
}
s.Close();
BytArray = (byte[])ms.ToArray();
ms.Dispose();
ms.Close();
s.Dispose();
}
return BytArray;
}
}
}
對象 序列化 反序列化
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.