示例#1
0
        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));
        }
示例#2
0
        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));
        }