private async Task AddChoiceOptionsAnswerAndRowAnswerAsync(int surveyId, int surveyAnswerId, string select, QuestionAnswerToAdd questionAnswer) { var questionAnswerId = await AddQuestionAnswerToSurveyAnswerAsync(surveyId, surveyAnswerId, questionAnswer.QuestionPosition, questionAnswer.Content, questionAnswer.Select, questionAnswer.IsRequired); if (questionAnswer.FieldData == null) { throw new NullReferenceException("Question must contain FieldData"); } foreach (var fieldDataAnswer in questionAnswer.FieldData) { var fieldDataAnswerId = await AddFieldDataAnswerToQuestionAnswerAsync(surveyId, questionAnswerId, fieldDataAnswer.Input, fieldDataAnswer.MinLabel, fieldDataAnswer.MaxLabel); if (fieldDataAnswer.ChoiceOptions != null) { await AddChoiceOptionsAnswerAsync(surveyId, fieldDataAnswer, questionAnswer.Select, fieldDataAnswerId, questionAnswer); } if (fieldDataAnswer.Rows != null) { await AddRowsAnswerAsync(surveyId, fieldDataAnswer, questionAnswer.Select, questionAnswer, fieldDataAnswerId); } } }
private async Task AddRowsAnswerAsync(int surveyId, FieldDataAnswerToAdd fieldDataAnswer, string select, QuestionAnswerToAdd questionAnswer, int fieldDataAnswerId) { if (fieldDataAnswer.Rows != null) { foreach (var rowAnswer in fieldDataAnswer.Rows) { var rowAnswerId = await AddRowAnswerAsync(fieldDataAnswerId, rowAnswer.RowPosition, rowAnswer.Input); if (rowAnswer.ChoiceOptions != null) { await AddChoiceOptionAnswerToRow(surveyId, rowAnswer, rowAnswerId); } } } }
private async Task AddChoiceOptionsAnswerAsync(int surveyId, FieldDataAnswerToAdd fieldDataAnswer, string select, int fieldDataAnswerId, QuestionAnswerToAdd questionAnswer) { if (questionAnswer.Select == "single-choice" || questionAnswer.Select == "multiple-choice" || questionAnswer.Select == "dropdown-menu" || questionAnswer.Select == "linear-scale") { var counter = 0; foreach (var choiceOption in fieldDataAnswer.ChoiceOptions) { await AddChoiceOptionsAnswerToFieldDataAnswerAsync(surveyId, fieldDataAnswerId, counter, choiceOption.Value, choiceOption.ViewValue); counter++; } } }