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); } } }
private void SaveTextAreaQuestion(TextAreaQuestionModel data) { Guid optionGroupId = _optionGroupService.AddAsync(optionGroupDefinitions.textArea).Result; InputTypesDto type = inputTypeList.Where(item => item.Name == data.ControlType).FirstOrDefault(); var questionId = SaveQuestion(data, false, optionGroupId, type.Id, null).Result; Guid id = _optionChoiceService.AddAsync(optionGroupId, null).Result; }
private void SaveGridRadioQuestion(GridRadioQuestionModel data) { InputTypesDto type = inputTypeList.Where(item => item.Name == data.ControlType).FirstOrDefault(); Guid optionGroupId = _optionGroupService.AddAsync(optionGroupDefinitions.gridRadio).Result; var parentQuestionId = SaveQuestion(data, false, optionGroupId, type.Id, null).Result; if (data.Grid.Rows.Count() > 0) { var rowTypeName = QuestionTypes.Radio.ToString(); InputTypesDto rowsType = inputTypeList.Where(item => item.Name == rowTypeName).FirstOrDefault(); foreach (var item in data.Grid.Rows) { BaseQuestionModel rowQuestion = new BaseQuestionModel() { Text = item.Value, Description = "", ControlType = rowTypeName, IsAdditionalAnswer = false, Required = data.Required, Order = 0, // stub }; var rowQuestionId = SaveQuestion(rowQuestion, false, optionGroupId, rowsType.Id, parentQuestionId).Result; } } if (data.Grid.Cols.Count() > 0) { _optionChoiceService.AddRange(optionGroupId, data.Grid.Cols); } if (data.IsAdditionalAnswer) { ItemModel item = new ItemModel() { IsAdditionalChoise = true, Value = "Additional answer gridRadio" }; _optionChoiceService.AddAsync(optionGroupId, item, true); } }
private void UpdateGridRadioQuestion(GridRadioQuestionModel 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.Grid.Cols.Find(x => x.Id == item.Id.ToString()); if (result != null) { item.Name = result.Value; _optionChoiceService.UpdateOptionChoise(item); data.Grid.Cols.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 gridRadio" }; var excistAdditional = _optionChoiceService.GetListByOptionGroup(question.OptionGroupId, true).Result.Where(x => x.IsAdditionalChoise == true).FirstOrDefault(); if (excistAdditional == null) { _optionChoiceService.AddAsync(question.OptionGroupId.Value, item, true); } } _optionChoiceService.AddRange(question.OptionGroupId.Value, data.Grid.Cols); var rowQuestionList = GetListByParentId(question.Id); foreach (var item in rowQuestionList) { var result = data.Grid.Rows.Find(x => x.Id == item.Id.ToString()); if (result != null) { item.Name = result.Value; item.OrderNo = 0; // stub UpdateQuestion(item); data.Grid.Rows.Remove(result); } else { DeleteQuestionById(item.Id); } } if (data.Grid.Rows.Count() > 0) { foreach (var row in data.Grid.Rows) { var rowTypeName = QuestionTypes.Radio.ToString(); InputTypesDto rowsType = inputTypeList.Where(item => item.Name == rowTypeName).FirstOrDefault(); BaseQuestionModel rowQuestion = new BaseQuestionModel() { Text = row.Value, Description = "", ControlType = rowTypeName, IsAdditionalAnswer = false, Required = data.Required, Order = 0, // stub }; var rowQuestionId = SaveQuestion(rowQuestion, false, question.OptionGroupId, rowsType.Id, question.Id).Result; } } }