public virtual ActionResult AnswerList(int questionId) { var answerFilter = new AnswerFilter().ByQuestion(questionId); var answers = AnswerService.GetAll(Query.ForAnswer(answerFilter).Include(x => x.Employee())); var model = new AnswerListViewModel { Answers = answers }; return PartialView(MVC.Answer.Views._ListAnswer, model); }
public async Task <IEnumerable <AnswerEntity> > GetAnswersAsync(AnswerFilter filter, CancellationToken cancellationToken = default(CancellationToken)) { cancellationToken.ThrowIfCancellationRequested(); ThrowIfDisposed(); var entitiesQuery = ApplyFilter(Entities, filter); var result = await entitiesQuery.ToListAsync(cancellationToken); return(result); }
public async Task <IEnumerable <Answer> > GetAnswersAsync(Guid questionId, int from, int toTake) { ThrowIfDisposed(); QuestionEntity question = await QuestionRepository.GetQuestionAsync(questionId, CancellationToken); if (question == null || question.IsClosed || !question.IsVerified) { return(Enumerable.Empty <Answer>()); } AnswerFilter filter = new AnswerFilter() { QuestionId = questionId, From = from, ToTake = toTake }; IEnumerable <AnswerEntity> answers = await AnswerRepository.GetAnswersAsync(filter, CancellationToken); var answersResult = Mapper.Map <IEnumerable <AnswerEntity>, IEnumerable <Answer> >(answers); return(answersResult); }
protected IQueryable <AnswerEntity> ApplyFilter(IQueryable <AnswerEntity> entities, AnswerFilter filter) { if (filter.QuestionId.HasValue) { entities = entities.Where(t => t.QuestionId == filter.QuestionId.Value); } if (filter.From.HasValue || filter.ToTake.HasValue) { entities = entities.OrderBy(t => t.CreateDateTimeUTC); if (filter.From.HasValue) { entities = entities.Skip(filter.From.Value); } if (filter.ToTake.HasValue) { entities = entities.Take(filter.ToTake.Value); } } return(entities); }