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); } }
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"); } }
//--------------------------------------------------------Constructor:----------------------------------------------------------------\\ #region --Constructors-- public FieldValueChangedByUserEventArgs(FieldDataTemplate field) { FIELD = field; }
public async Task AddAsync(FieldDataTemplate fieldDataTemplate) { await _context.FieldDataTemplates.AddAsync(fieldDataTemplate); await _context.SaveChangesAsync(); }
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; } }