using System; using System.Collections.Generic; using System.Text; namespace RoadFlow.Platform { public class Log { private RoadFlow.Data.Interface.ILog dataLog; private static RoadFlow.Data.Interface.ILog dataLog1 = Data.Factory.Factory.GetLog(); private delegate void dgWriteLog(RoadFlow.Data.Model.Log log); public Log() { this.dataLog = dataLog1; } /// /// 更新 /// public int Update(RoadFlow.Data.Model.Log model) { return dataLog.Update(model); } /// /// 查询所有记录 /// public List GetAll() { return dataLog.GetAll(); } /// /// 查询单条记录 /// public RoadFlow.Data.Model.Log Get(Guid id) { return dataLog.Get(id); } /// /// 删除 /// public int Delete(Guid id) { return dataLog.Delete(id); } /// /// 查询记录条数 /// public long GetCount() { return dataLog.GetCount(); } public enum Types { 组织机构, 用户登录, 角色应用, 数据字典, 流程相关, 系统错误, 其它分类 } /// /// 新增 /// private static void add(RoadFlow.Data.Model.Log model) { dataLog1.Add(model); } /// /// 新增 /// public static void Add(RoadFlow.Data.Model.Log model) { //2020-06-17取消写Log功能,避免后期报错(数据库中确收Log表)。 //dgWriteLog wl = new dgWriteLog(add); //wl.BeginInvoke(model, null, null); } /// /// 记录日志 /// /// public static void Add(string title, string contents, Types type = Types.其它分类, string oldXML = "", string newXML = "", FangYar.Model.TBL.TBL_SYS_USERS_Model user = null) { if (user == null) { user = Platform.Users.CurrentUser; } RoadFlow.Data.Model.Log log = new RoadFlow.Data.Model.Log(); log.Contents = contents; log.ID = Guid.NewGuid(); log.IPAddress = RoadFlow.Utility.Tools.GetIPAddress(); log.Others = string.Format("操作系统:{0} 浏览器:{1}", RoadFlow.Utility.Tools.GetOSName(), RoadFlow.Utility.Tools.GetBrowse()); log.Title = title; log.OldXml = oldXML.IsNullOrEmpty() ? null : oldXML; log.NewXml = newXML.IsNullOrEmpty() ? null : newXML; log.Type = type.ToString(); log.URL = System.Web.HttpContext.Current.Request.Url.ToString(); if (user != null) { log.UserID = user.USERS_UID; log.UserName = user.USERS_NAME; } log.WriteTime = RoadFlow.Utility.DateTimeNew.Now; Add(log); } public static void Add(Exception err) { Add(err.Message, string.Concat(err.Source, err.StackTrace), Types.系统错误); } /// /// 得到类别下接选择 /// /// public string GetTypeOptions(string value = "") { StringBuilder options = new StringBuilder(); var array = Enum.GetValues(typeof(Types)); foreach (var arr in array) { options.AppendFormat("", arr, arr.ToString() == value ? "selected=\"selected\"" : ""); } return options.ToString(); } /// /// 得到一页日志数据 /// /// /// /// /// /// /// /// /// /// /// /// public System.Data.DataTable GetPagerData(out string pager, string query = "", string title = "", string type = "", string date1 = "", string date2 = "", string userID = "") { return dataLog.GetPagerData(out pager, query, RoadFlow.Utility.Tools.GetPageSize(), RoadFlow.Utility.Tools.GetPageNumber(), title, type, date1, date2, Users.RemovePrefix(userID)); } } }