public async ValueTask <AdminReadErrorsResponse> AdminRead(ErrorFilterRequest filter) { var response = new AdminReadErrorsResponse(); await response.Read(context, filter); return(response); }
public async ValueTask Read(ErrorsContext context, ErrorFilterRequest filter) { var errors = context.Errors.AsNoTracking(); if (filter.TraceId != null) { errors = errors.Where(e => e.TraceIds.Any(t => t.Id == filter.TraceId)); } if (filter.Project != null) { errors = errors.Where(e => e.Project == filter.Project); } if (filter.Type != null) { errors = errors.Where(e => e.Type == filter.Type); } if (filter.From != null) { errors = errors.Where(e => e.Created >= filter.From); } if (filter.To != null) { errors = errors.Where(e => e.Created <= filter.To); } Errors = await errors .Include(e => e.TraceIds) .OrderByDescending(e => e.Created) .Skip(filter.Offset) .Take(filter.Limit) .Select(error => new AdminReadErrorsResponseItem(error)) .ToListAsync(); }