/// <summary> /// 写入作业日志(更新操作) /// </summary> /// <param name="oldObj">旧实体对象</param> /// <param name="newObj">新实体对象</param> /// <param name="OperationType">操作类型</param> /// <param name="Status">状态</param> /// <param name="Remark">操作说明</param> /// <returns></returns> public void WriteLog <T>(T oldObj, T newObj, OperationType OperationType, int Status, string Remark = "") { IDatabase database = DataFactory.Database(); DbTransaction isOpenTrans = database.BeginTrans(); try { SysLog.ObjectId = DatabaseCommon.GetKeyFieldValue(newObj).ToString(); SysLog.LogType = (int)OperationType; SysLog.IPAddress = ManageProvider.Provider.Current().IPAddress; SysLog.IPAddressName = ManageProvider.Provider.Current().IPAddressName; SysLog.CreateUserId = ManageProvider.Provider.Current().UserId; SysLog.CreateUserName = ManageProvider.Provider.Current().Account; SysLog.CreateTime = DateTime.Now; SysLog.ModuleId = int.Parse(DESEncrypt.Decrypt(CookieHelper.GetCookie("ModuleId"))); if (Remark == "") { SysLog.Remark = DatabaseCommon.GetClassName <T>(); } else { SysLog.Remark = Remark; } SysLog.Status = Status; int newid = database.Insert(SysLog, isOpenTrans); //添加日志详细信息 Type objTye = typeof(T); StringBuilder sbNewValue = new StringBuilder(); StringBuilder sbOldValue = new StringBuilder(); foreach (PropertyInfo pi in objTye.GetProperties()) { object oldVal = pi.GetValue(oldObj, null); object newVal = pi.GetValue(newObj, null); if (!Equals(oldVal, newVal)) { if (oldVal != null && oldVal.ToString() != " " && oldVal.ToString() != "" && newVal != null && newVal.ToString() != " " && newVal.ToString() != "") { sbNewValue.Append(pi.Name + ":" + newVal + ","); sbOldValue.Append(pi.Name + ":" + oldVal + ","); } } } SysLogDetail syslogdetail = new SysLogDetail(); syslogdetail.SysLogId = newid; syslogdetail.PropertyField = ""; syslogdetail.CreateTime = DateTime.Now; syslogdetail.PropertyName = ""; syslogdetail.NewValue = sbNewValue.ToString(); syslogdetail.OldValue = sbOldValue.ToString(); database.Insert(syslogdetail, isOpenTrans); database.Commit(); } catch (Exception e) { database.Rollback(); } }
public void WriteLog <T>(List <T> obj, OperationType type, int Status, string Remark = "") where T : new() { IDatabase database = DataFactory.Database(); DbTransaction isOpenTrans = database.BeginTrans(); try { foreach (var item in obj) { // T Oldentity = database.FindEntity<T>(item.ToString()); SysLog.ObjectId = DatabaseCommon.GetKeyFieldValue(item).ToString(); SysLog.LogType = (int)type; SysLog.IPAddress = ManageProvider.Provider.Current().IPAddress; SysLog.IPAddressName = ManageProvider.Provider.Current().IPAddressName; SysLog.CreateUserId = ManageProvider.Provider.Current().UserId; SysLog.CreateUserName = ManageProvider.Provider.Current().Account; SysLog.CreateTime = DateTime.Now; SysLog.ModuleId = int.Parse(DESEncrypt.Decrypt(CookieHelper.GetCookie("ModuleId"))); if (Remark == "") { SysLog.Remark = DatabaseCommon.GetClassName <T>(); } else { SysLog.Remark = Remark; } SysLog.Status = Status; int newid = database.Insert(SysLog, isOpenTrans); //添加日志详细信息 Type objTye = typeof(T); StringBuilder sbOldValue = new StringBuilder(); foreach (PropertyInfo pi in objTye.GetProperties()) { object value = pi.GetValue(item, null); if (value != null && value.ToString() != " " && value.ToString() != "") { sbOldValue.Append(pi.Name + ":" + value + ","); } } SysLogDetail syslogdetail = new SysLogDetail(); syslogdetail.SysLogId = newid; syslogdetail.PropertyField = ""; syslogdetail.PropertyName = ""; syslogdetail.NewValue = sbOldValue.ToString(); syslogdetail.CreateTime = DateTime.Now; database.Insert(syslogdetail, isOpenTrans); } database.Commit(); } catch { database.Rollback(); } }