using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using CommonTool;
using YZXYH.Repository.Models;
namespace YZXYH.Repository
{
public partial class SysLogRepository
{
///
/// 写入数据库操作日志
///
/// 操作命令("用户类型|用户命令")
/// 日志信息
/// 用户编号
/// 错误日志
/// 普通校友用户的毕业年份
/// 日志类型
public void AddLog(string pcLogCommand, string pcLogMsg, string pcUserNo, string pcErrorMsg = "", string pcGranduationYear = "", LogMsgType pcLogMsgType= LogMsgType.Information)
{
string lcLogSite= WebLibs.CurPageName;
string[] ltArr = lcLogSite.Split(new []{'_'}, StringSplitOptions.RemoveEmptyEntries);
if (pcLogCommand.IndexOf("Login", StringComparison.Ordinal) > 0 && ltArr.Length> 1 && ltArr[1].Length > 30 )
{
lcLogSite = ltArr[0] + "_" + SysSecurity.Decrypt(ltArr[1]);
}
SysLog loSysLogInfo = new SysLog()
{
//Id = Guid.NewGuid().ToString("N"),
LogDate =DateTime.Now,
SysLogType = ((int)pcLogMsgType).ToString(),
LogCommand = pcLogCommand,
LogMessage = pcLogMsg,
UserNo = pcUserNo,
GraduationYear = pcGranduationYear,
LogErrorMessage = pcErrorMsg,
LogSite = lcLogSite,
UserHostAddress = HttpContext.Current.Request.UserHostAddress
};
InsertNoId(loSysLogInfo);
Save();
}
///
/// 管理员编码进行年级筛选用户日志
///
/// 数据源
/// 管理员编码
/// SysLogs
public List GetUserSysLogs(List pcSysLogs, string pcUserNo)
{
var graduationStr = GetSingle(s => s.UserNo == pcUserNo).GraduationYear;
if (graduationStr.Contains("ALL"))
return pcSysLogs;
List loSysLogInfos = new List();
string[] graduationStrs = graduationStr.Split(',');
foreach (var graduation in graduationStrs)
loSysLogInfos.AddRange(pcSysLogs.Where(s => s.GraduationYear == graduation));
return loSysLogInfos;
}
}
}