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));
}
}
}