Esempio n. 1
0
        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);
        }