Esempio n. 1
0
        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);
                }
            }
        }
Esempio n. 2
0
 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;
 }
Esempio n. 3
0
        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);
            }
        }
Esempio n. 4
0
        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;
                }
            }
        }