public Result List(QuizAnswerAdminFilterDto dto) { var result = _actionFactory.Action(dto.Action)?.Apply(dto.Ids) ?? new Result(); if (!result.Success) { return(result); } if (dto.Action == "markanaswer") { var questionId = dto.Ids[1]; var queryAllAnswer = _quizAnswerRepository.AsNoTracking.Where(x => x.QuizQuestionId == questionId); queryAllAnswer.Update(u => new QuizAnswer { IsCorrectAnswer = false }); var answerId = dto.Ids[0]; var queryAnswer = _quizAnswerRepository.AsNoTracking.Where(x => x.Id == answerId); queryAnswer.Update(u => new QuizAnswer { IsCorrectAnswer = true }); } var query = _quizAnswerRepository.AsNoTracking; query = new QuizAnswerAdminFilter(query, dto).FilteredQuery(); query = new QuizAnswerAdminListOrder(query, dto).OrderByQuery(); result.SetPaging(dto?.Page ?? 1, dto?.Size ?? 10, query.Count()); result.Data = query .Select(s => new { s.Id, s.Answer, s.IsCorrectAnswer, s.QuizQuestionId }) .Skip((result.Paging.Page - 1) * result.Paging.Size) .Take(result.Paging.Size); return(result); }
public IHttpActionResult Get([FromUri] QuizAnswerAdminFilterDto dto) { return(Result(_quizAnswerAdminService.List(dto))); }