Beispiel #1
0
        public async Task <PaginationOutput <EvaluationDto> > GetListAsync(QueryEvaluationInput input)
        {
            CancellationToken.ThrowIfCancellationRequested();
            if (input == null)
            {
                throw new ArgumentNullException(nameof(input));
            }

            var query = from a in _context.Evaluations
                        join b in _context.Jobs on a.JobId equals b.Id
                        select new EvaluationDto()
            {
                Id           = a.Id,
                Title        = a.Title,
                JobId        = a.JobId,
                JobName      = b.Title,
                CreationTime = a.CreationTime
            };

            if (input.JobId.HasValue)
            {
                query = query.Where(w => w.JobId == input.JobId);
            }

            var totalCount = await query.CountAsync(CancellationToken);

            var totalSize  = (int)Math.Ceiling(totalCount / (decimal)input.PageSize);
            var evalations = await query.OrderByDescending(o => o.CreationTime)
                             .Skip((input.PageIndex - 1) * input.PageSize)
                             .Take(input.PageSize)
                             .ToListAsync(CancellationToken);

            return(new PaginationOutput <EvaluationDto>(totalSize, evalations));
        }
        public async Task <IActionResult> List(QueryEvaluationInput input)
        {
            var output = await _evaluationQuerier.GetListAsync(input);

            var model = new QueryEvaluationViewModel()
            {
                Output = new PaginationModel <EvaluationDto>(output, input)
            };

            return(await BuildListDisplayAsync(model));
        }