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);
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
        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);
        }