public async Task <ApiListResponse <ReportInfoModel> > Handle(ReportListCommand request, CancellationToken cancellationToken) { _logger.LogInformation($"Searching for Reports with the following filters (Title): {request.Title}"); var user = _context.Users.FirstOrDefault(u => u.UserId == request.UserId); IQueryable <Entities.Report> reports = _context.Reports .Include(r => r.User) .Where(r => r.User.NgoId == user.NgoId); if (!string.IsNullOrEmpty(request.Title)) { reports = reports.Where(r => r.Title.Contains(request.Title)); } var count = await reports.CountAsync(cancellationToken); var requestedPageReports = GetPagedQuery(reports.OrderByDescending(r => r.CreationDate), request.Page, request.PageSize) .ToList() .Select(_mapper.Map <ReportInfoModel>); return(new ApiListResponse <ReportInfoModel> { TotalItems = count, Data = requestedPageReports.ToList(), Page = request.Page, PageSize = request.PageSize }); }
public static Command BuildCommand() { var cmd = new Command("reports", "Show jira results in predefined format"); cmd.AddCommand(ReportListCommand.Build()); cmd.AddCommand(ReportBuildCommand.Build()); return(cmd); }