public List <Question> GetQuestionsByFilter([FromUri] FilterQuestions filter) { if (!ModelState.IsValid) { throw new BadRequestException(); } return(Service.GetQuestionsByFilter(filter)); }
/// <summary> /// Формирование объекта фильтра вопросов /// </summary> /// <returns>Объект фильтра вопросов</returns> private FilterQuestions FormingFilterQuestions() { FilterQuestions filter = new FilterQuestions(); if (Form.cbxFilterActing.Checked) { filter.Acting = Form.cbxActing.Checked; } if (Form.cbxFilterLevelDifficulty.Checked) { filter.LevelDifficulty = GetLevelDifficulty(); } if (Form.cbxFilterSubject.Checked) { filter.Subject = (SubjectEnum)Form.cmbSubject.SelectedIndex; } return(filter); }
/// <summary> /// Возвращение списка вопросов по фильтру /// </summary> /// <param name="filter">Объект фильтра вопросов</param> /// <returns>Список вопросов</returns> public List <Question> GetQuestionsByFilter(FilterQuestions filter) { List <Question> listQuestions = null; IQueryable <Question> questions = Context.Questions; if (filter.Acting != null) { questions = questions.Where(n => n.Acting == filter.Acting); } if (filter.LevelDifficulty != null) { questions = questions.Where(n => n.LevelDifficulty == filter.LevelDifficulty); } if (filter.Subject != null) { questions = questions.Where(n => n.Subject == filter.Subject); } listQuestions = questions.ToList(); return(listQuestions); }
/// <summary> /// Возвращение вопросов по фильтру /// </summary> /// <returns>Список вопросов</returns> public async Task <List <Question> > GetQuestionsByFilter() { List <Question> listQuestions = null; FilterQuestions filter = FormingFilterQuestions(); try { string uri = $"{ServicePath}/api/Questions/GetQuestionsByFilter?acting={filter.Acting}&" + $"levelDifficulty={filter.LevelDifficulty}&subject={filter.Subject}"; HttpResponseMessage result = await Client.GetAsync(uri); if (CheckResult(result)) { string listQuestionsJson = await result.Content.ReadAsStringAsync(); listQuestions = JsonSerializer.Deserialize <List <Question> >(listQuestionsJson); } } catch { OutputInfoForm(ServiceError); } return(listQuestions); }