示例#1
0
 private async Task AddRowsAsync(FieldDataTemplate fieldDataToAdd, string select, int fieldDataId)
 {
     if (fieldDataToAdd.RowTemplates == null)
     {
         await Task.CompletedTask;
     }
     foreach (var row in fieldDataToAdd.RowTemplates)
     {
         await AddRowAsync(fieldDataId, row.RowPosition, row.Input);
     }
 }
示例#2
0
        private async Task AddChoiceOptionsAsync(FieldDataTemplate fieldDataToAdd, string select, int fieldDataId)
        {
            if (fieldDataToAdd.ChoiceOptionTemplates != null)
            {
                var counter = 0;
                foreach (var choiceOption in fieldDataToAdd.ChoiceOptionTemplates)
                {
                    await AddChoiceOptionsAsync(fieldDataId, counter,
                                                choiceOption.Value, choiceOption.ViewValue);

                    counter++;
                }
            }
        }
        public async Task <int> AddFieldDataToQuestionAsync(int questionTemplateId, string input, int minValue, int maxValue,
                                                            string minLabel, string maxLabel)
        {
            var questionTemplate = await _questionTemplateRepository.GetByIdAsync(questionTemplateId);

            switch (questionTemplate.Select)
            {
            case "short-answer":
            {
                var fieldDataTemplate = new FieldDataTemplate(input);
                questionTemplate.AddFieldDataTemplate(fieldDataTemplate);
                await _fieldDataTemplateRepository.AddAsync(fieldDataTemplate);

                return(fieldDataTemplate.Id);
            }

            case "long-answer":
            {
                var fieldDataTemplate = new FieldDataTemplate(input);
                questionTemplate.AddFieldDataTemplate(fieldDataTemplate);
                await _fieldDataTemplateRepository.AddAsync(fieldDataTemplate);

                return(fieldDataTemplate.Id);
            }

            case "single-choice":
            {
                var fieldDataTemplate = new FieldDataTemplate();
                questionTemplate.AddFieldDataTemplate(fieldDataTemplate);
                await _fieldDataTemplateRepository.AddAsync(fieldDataTemplate);

                return(fieldDataTemplate.Id);
            }

            case "multiple-choice":
            {
                var fieldDataTemplate = new FieldDataTemplate();
                questionTemplate.AddFieldDataTemplate(fieldDataTemplate);
                await _fieldDataTemplateRepository.AddAsync(fieldDataTemplate);

                return(fieldDataTemplate.Id);
            }

            case "dropdown-menu":
            {
                var fieldDataTemplate = new FieldDataTemplate();
                questionTemplate.AddFieldDataTemplate(fieldDataTemplate);
                await _fieldDataTemplateRepository.AddAsync(fieldDataTemplate);

                return(fieldDataTemplate.Id);
            }

            case "linear-scale":
            {
                var fieldDataTemplate = new FieldDataTemplate(minValue, maxValue, minLabel, maxLabel);
                questionTemplate.AddFieldDataTemplate(fieldDataTemplate);
                await _fieldDataTemplateRepository.AddAsync(fieldDataTemplate);

                return(fieldDataTemplate.Id);
            }

            case "single-grid":
            {
                var fieldDataTemplate = new FieldDataTemplate();
                questionTemplate.AddFieldDataTemplate(fieldDataTemplate);
                await _fieldDataTemplateRepository.AddAsync(fieldDataTemplate);

                return(fieldDataTemplate.Id);
            }

            case "multiple-grid":
            {
                var fieldDataTemplate = new FieldDataTemplate();
                questionTemplate.AddFieldDataTemplate(fieldDataTemplate);
                await _fieldDataTemplateRepository.AddAsync(fieldDataTemplate);

                return(fieldDataTemplate.Id);
            }

            default:
                throw new InvalidValueException("Invalid select value");
            }
        }
示例#4
0
 //--------------------------------------------------------Constructor:----------------------------------------------------------------\\
 #region --Constructors--
 public FieldValueChangedByUserEventArgs(FieldDataTemplate field)
 {
     FIELD = field;
 }
        public async Task AddAsync(FieldDataTemplate fieldDataTemplate)
        {
            await _context.FieldDataTemplates.AddAsync(fieldDataTemplate);

            await _context.SaveChangesAsync();
        }
示例#6
0
        private async Task AddChoiceOptionsAndRowsAsync(int questionId, string select, FieldDataTemplate fieldDataToAdd)
        {
            var fieldDataId = await AddFieldDataToQuestionAsync(questionId,
                                                                fieldDataToAdd.Input,
                                                                fieldDataToAdd.MinValue,
                                                                fieldDataToAdd.MaxValue,
                                                                fieldDataToAdd.MinLabel,
                                                                fieldDataToAdd.MaxLabel);

            if (select == "single-grid" || select == "multiple-grid")
            {
                await AddRowsAsync(fieldDataToAdd, select, fieldDataId);
                await AddChoiceOptionsAsync(fieldDataToAdd, select, fieldDataId);
            }
            else if (select == "single-choice" || select == "multiple-choice" || select == "dropdown-menu" ||
                     select == "single-grid" || select == "multiple-grid")
            {
                await AddChoiceOptionsAsync(fieldDataToAdd, select, fieldDataId);
            }
            else
            {
                await Task.CompletedTask;
            }
        }