private void SaveDropdownQuestion(DropdownQuestionModel data) { Guid optionGroupId = _optionGroupService.AddAsync(optionGroupDefinitions.dropdown).Result; InputTypesDto type = inputTypeList.Where(item => item.Name == data.ControlType).FirstOrDefault(); var questionId = SaveQuestion(data, false, optionGroupId, type.Id, null).Result; if (data.Options.Count() > 0) { _optionChoiceService.AddRange(optionGroupId, data.Options); } if (data.IsAdditionalAnswer) { ItemModel item = new ItemModel() { IsAdditionalChoise = true, Value = "Additional answer dropdown" }; var excistAdditional = _optionChoiceService.GetListByOptionGroup(optionGroupId).Result.Where(x => x.IsAdditionalChoise == true).FirstOrDefault(); if (excistAdditional == null) { _optionChoiceService.AddAsync(optionGroupId, item, true); } } }
public BaseQuestionModel GetQuestionByType(string baseQuestion) { BaseQuestionModel baseQuestionM = JsonConvert.DeserializeObject <BaseQuestionModel>(baseQuestion); if (Enum.TryParse(baseQuestionM.ControlType.ToString(), out type)) { switch (type) { case QuestionTypes.Textbox: { TextQuestionModel question = JsonConvert.DeserializeObject <TextQuestionModel>(baseQuestion); baseQuestionM = question as BaseQuestionModel; break; } case QuestionTypes.Textarea: { TextAreaQuestionModel question = JsonConvert.DeserializeObject <TextAreaQuestionModel>(baseQuestion); baseQuestionM = question as BaseQuestionModel; break; } case QuestionTypes.Radio: { RadioQuestionModel question = JsonConvert.DeserializeObject <RadioQuestionModel>(baseQuestion); baseQuestionM = question as BaseQuestionModel; break; } case QuestionTypes.Checkbox: { CheckBoxQuesstionModel question = JsonConvert.DeserializeObject <CheckBoxQuesstionModel>(baseQuestion); baseQuestionM = question as BaseQuestionModel; break; } case QuestionTypes.Dropdown: { DropdownQuestionModel question = JsonConvert.DeserializeObject <DropdownQuestionModel>(baseQuestion); baseQuestionM = question as BaseQuestionModel; break; } case QuestionTypes.GridRadio: { GridRadioQuestionModel question = JsonConvert.DeserializeObject <GridRadioQuestionModel>(baseQuestion); baseQuestionM = question as BaseQuestionModel; break; } } } return(baseQuestionM); }
private BaseQuestionModel GetDropdownQuestion(QuestionsDto questionDto, string type) { var options = _optionChoiceService.GetListByOptionGroup(questionDto.OptionGroupId).Result; DropdownQuestionModel dropdownQuestion = new DropdownQuestionModel() { Id = questionDto.Id.ToString(), Text = questionDto.Name, Order = questionDto.OrderNo, ControlType = type, Description = questionDto.Description, IsAdditionalAnswer = questionDto.AdditionalAnswer, Required = questionDto.Required, Options = options }; return(dropdownQuestion as BaseQuestionModel); }
private void UpdateDropdownQuestion(DropdownQuestionModel data) { var question = GetQuestionById(Guid.Parse(data.Id)); question.Name = data.Text; question.Description = data.Description; question.Required = data.Required; question.OrderNo = data.Order; question.AdditionalAnswer = data.IsAdditionalAnswer; UpdateQuestion(question); var optionChoiseList = _optionChoiceService.GetListByOptionGroupId(question.OptionGroupId).Result; foreach (var item in optionChoiseList) { var result = data.Options.Find(x => x.Id == item.Id.ToString()); if (result != null) { item.Name = result.Value; _optionChoiceService.UpdateOptionChoise(item); data.Options.Remove(result); // Delete an item from updated option list to getting the only new options } else { DeleteOptionChoises(item.Id); _optionChoiceService.DeleteOptionChoise(item); } } if (data.IsAdditionalAnswer) { ItemModel item = new ItemModel() { IsAdditionalChoise = true, Value = "Additional answer dropdown" }; var excistAdditional = _optionChoiceService.GetListByOptionGroup(question.OptionGroupId, true).Result.Where(x => x.IsAdditionalChoise == true).FirstOrDefault(); if (excistAdditional == null) { data.Options.Add(item); } } _optionChoiceService.AddRange(question.OptionGroupId.Value, data.Options); }