int GenerateFilter() { int questionId = Convert.ToInt32(ddlAutoQuestions.SelectedValue); if (questionId == -1) { return(0); } var q = new Questions().GetAnswerableQuestionList(SurveyId).Questions.Single(x => x.QuestionId == questionId); var parentFilterId = Convert.ToInt32(ddlAutoFilterParent.SelectedValue); FilterData.FiltersRow p = parentFilterId == 0 ? new Filters().GetEmptyFilter().Filters.FindByFilterId(parentFilterId) : new Filters().GetFilterById(parentFilterId).Filters.FindByFilterId(parentFilterId); int filterCount = 0; foreach (AnswerData.AnswersRow a in new Answers().GetAnswersList(questionId).Answers) { if (((AnswerTypeEnum)a.AnswerTypeId) == AnswerTypeEnum.SelectionTextType) { AddFilter(q, a, p); filterCount++; } } return(filterCount); }
private string GetFilterPart(FilterData.FiltersRow f, string splitChar) { var split = f.Description.Split(new[] { splitChar[0] }); return(split.Any() ? split[0] : f.Description); }
private void CreatefilterButton_Click(object sender, System.EventArgs e) { if (FilterNameTextBox.Text.Length == 0) { MessageLabel.Visible = true; ((PageBase)Page).ShowErrorMessage(MessageLabel, ((PageBase)Page).GetPageResource("InvalidFilterDescriptionMessage")); } else { FilterData filterData = new FilterData(); FilterData.FiltersRow filterRow = filterData.Filters.NewFiltersRow(); filterRow.LogicalOperatorTypeID = short.Parse(LogicalOperatorDropDownList.SelectedValue); filterRow.Description = FilterNameTextBox.Text; filterRow.SurveyId = SurveyId; filterRow.ParentFilterId = int.Parse(ParentFilterNameDropDownList.SelectedValue); filterData.Filters.AddFiltersRow(filterRow); new Filter().AddFilter(filterData); UINavigator.NavigateToFilterEditor(SurveyId, ((PageBase)Page).MenuIndex); } }
void AddFilter(QuestionData.QuestionsRow q, AnswerData.AnswersRow a, FilterData.FiltersRow p) { FilterData filterData = new FilterData(); FilterData.FiltersRow filterRow = filterData.Filters.NewFiltersRow(); filterRow.LogicalOperatorTypeID = short.Parse(LogicalOperatorDropDownList.SelectedValue); filterRow.Description = FilterName(q, a, p); filterRow.SurveyId = SurveyId; filterRow.ParentFilterId = p.FilterId; filterData.Filters.AddFiltersRow(filterRow); new Filter().AddFilter(filterData); FilterRuleData filterRuleData = new FilterRuleData(); FilterRuleData.FilterRulesRow filterRuleRow = filterRuleData.FilterRules.NewFilterRulesRow(); filterRuleRow.QuestionId = q.QuestionId; filterRuleRow.AnswerId = a.AnswerId; filterRuleRow.FilterId = filterRow.FilterId; filterRuleData.FilterRules.AddFilterRulesRow(filterRuleRow); new Filter().AddRule(filterRuleData); }
public string FilterName(QuestionData.QuestionsRow q, AnswerData.AnswersRow a, FilterData.FiltersRow f) { const string splitChar = "|"; return(f.FilterId == 0 ? FilterName(q, a, splitChar) : FilterName(q, a, f, splitChar)); }
public string FilterName(QuestionData.QuestionsRow q, AnswerData.AnswersRow a, FilterData.FiltersRow f, string splitChar) { return(GetSubstr(GetFilterPart(f, splitChar)) + splitChar + FilterName(q, a, splitChar)); }