public async Task <PaginationOutput <QuestionDto> > GetQuestionsAsync(QueryQuestionInput input) { CancellationToken.ThrowIfCancellationRequested(); if (input == null) { throw new ArgumentNullException(nameof(input)); } var query = from x in _context.EvaluationQuestions where x.SubjectId == input.SubjectId select new QuestionDto() { Id = x.Id, Order = x.Order, Description = x.Description }; var totalCount = await query.CountAsync(CancellationToken); var totalSize = (int)Math.Ceiling(totalCount / (decimal)input.PageSize); var questions = await query.OrderBy(o => o.Order) .Skip((input.PageIndex - 1) * input.PageSize) .Take(input.PageSize) .ToListAsync(CancellationToken); return(new PaginationOutput <QuestionDto>(totalSize, questions)); }
public async Task <PaginationOutput <QuestionDto> > GetQuestionsAsync(QueryQuestionInput input) { var query = from x in _context.EvaluationQuestions where x.SubjectId == input.SubjectId select new QuestionDto() { Id = x.Id, Order = x.Order, Description = x.Description }; var totalCount = await query.CountAsync(); var totalSize = (int)Math.Ceiling(totalCount / (decimal)input.PageSize); var questions = await query.OrderBy(o => o.Order) .Skip((input.PageIndex - 1) * input.PageSize) .Take(input.PageSize) .ToListAsync(); return(new PaginationOutput <QuestionDto>(totalSize, questions)); }
public async Task <IActionResult> Questions(QueryQuestionInput input) { var output = await _evaluationQuerier.GetQuestionsAsync(input); return(View(new PaginationModel <QuestionDto>(output, input))); }