public async Task <IEnumerable <InternalErrorLogEntry> > GetLogsAsync(ErrorLogsFilter filter) { var dbModels = await Context .InternalErrorLogEntries .Where(ComposeFilter(filter)) .ToListAsync() .ConfigureAwait(false); return(Mapper.Map <IEnumerable <InternalErrorLogEntry> >(dbModels)); }
private Expression <Func <InternalErrorLogEntryDbModel, bool> > ComposeFilter(ErrorLogsFilter filter) { var exp = base.ComposeBaseFilter <InternalErrorLogEntryDbModel>(filter); if (!string.IsNullOrWhiteSpace(filter.ServiceName)) { exp = PredicateExtensions.And(exp, entry => entry.ServiceName.ToLower().Contains(filter.ServiceName.ToLower())); } if (!string.IsNullOrWhiteSpace(filter.ExceptionTypeName)) { exp = PredicateExtensions.And(exp, entry => entry.ExceptionType.ToLower().Contains(filter.ExceptionTypeName.ToLower())); } if (!string.IsNullOrWhiteSpace(filter.Message)) { exp = PredicateExtensions.And(exp, entry => entry.Message.ToLower().Contains(filter.Message.ToLower())); } return(exp); }
public async Task <IActionResult> GetErrorLogs([FromQuery] ErrorLogsFilter filter) { var result = await _loggingService.GetLogsAsync(filter); return(Ok(result)); }