using SqlSugar;
using WMS.BZModels;
using WMS.BZModels.Dto.Log;
using WMS.BZModels.Models.Log;
using WMS.BZSqlSugar;
using WMS.Info;
using Extensions = WMS.BZModels.Extensions;
namespace WMS.BZServices.KLHC
{
///
/// 日志中心服务
///
public class LogHubService
{
private readonly Repository _logHubRepository;
public LogHubService(Repository logHubRepository)
{
_logHubRepository = logHubRepository;
}
public PagedInfo GetPageList(Pagination pagination, LogInfoModeQueryDto wCSTaskinfoQueryDto)
{
var predicate = Expressionable.Create();
predicate = predicate.AndIF(!string.IsNullOrEmpty(wCSTaskinfoQueryDto?.KeyWord), m => m.SourceMethod.ToString().Contains(wCSTaskinfoQueryDto.KeyWord));
predicate = predicate.AndIF(!string.IsNullOrEmpty(wCSTaskinfoQueryDto?.LogLevel), m => m.LogLevel.Equals(wCSTaskinfoQueryDto.LogLevel));
predicate = predicate.AndIF(!string.IsNullOrEmpty(wCSTaskinfoQueryDto?.LogSource), m => m.LogSource.ToString().Contains(wCSTaskinfoQueryDto.LogSource));
predicate = predicate.AndIF(!string.IsNullOrEmpty(wCSTaskinfoQueryDto?.SourceSystem), m => m.SourceSystem.ToString().Contains(wCSTaskinfoQueryDto.SourceSystem));
predicate = predicate.AndIF(!string.IsNullOrEmpty(wCSTaskinfoQueryDto?.SourceClass), m => m.SourceClass.ToString().Contains(wCSTaskinfoQueryDto.SourceClass));
predicate = predicate.AndIF(!string.IsNullOrEmpty(wCSTaskinfoQueryDto?.SourceMethod), m => m.SourceMethod.ToString().Contains(wCSTaskinfoQueryDto.SourceMethod));
var list = _logHubRepository.Queryable().With(SqlWith.NoLock).Where(predicate.ToExpression()).ToPage(pagination);
return list;
}
///
/// 获取日志级别列表
///
///
public List GetLogLevelList()
{
return Extensions.EnumToList();
}
///
/// 获取日志来源列表
///
///
public List GetLogSourceList()
{
var list = _logHubRepository.Queryable().With(SqlWith.NoLock).GroupBy(x => x.LogSource).Select(x => new EnumEntity2
{
id = x.LogSource.ToString(),
text = x.LogSource.ToString()
}).ToList();
return list;
}
///
/// 获取日志来源系统列表
///
///
public List GetSourceSystemList()
{
var list = _logHubRepository.Queryable().With(SqlWith.NoLock).GroupBy(x => x.SourceSystem).Select(x => new EnumEntity2
{
id = x.SourceSystem.ToString(),
text = x.SourceSystem.ToString()
}).ToList();
return list;
}
///
/// 获取日志来源类列表
///
///
public List GetSourceClassList()
{
var list = _logHubRepository.Queryable().With(SqlWith.NoLock).GroupBy(x => x.SourceClass).Select(x => new EnumEntity2
{
id = x.SourceClass.ToString(),
text = x.SourceClass.ToString()
}).ToList();
return list;
}
///
/// 获取日志来源方法列表
///
///
public List GetSourceMethodList()
{
var list = _logHubRepository.Queryable().With(SqlWith.NoLock).GroupBy(x => x.SourceMethod).Select(x => new EnumEntity2
{
id = x.SourceMethod.ToString(),
text = x.SourceMethod.ToString()
}).ToList();
return list;
}
}
}