public async Task AddChoiceOptionsAnswerToFieldDataAnswerAsync(int surveyId, int fieldDataAnswerId, int optionPosition, bool value, string viewValue) { var fieldDataAnswer = await _fieldDataAnswerRepository.GetByIdAsync(fieldDataAnswerId); var choiceOptionAnswer = new ChoiceOptionAnswer(optionPosition, value, viewValue); fieldDataAnswer.AddChoiceOptionAnswer(choiceOptionAnswer); await _choiceOptionAnswerRepository.AddAsync(choiceOptionAnswer); var questionAnswer = await _questionAnswerRepository.GetByIdAsync(fieldDataAnswer.QuestionAnswerId); var surveyReport = await _surveyReportRepository.GetBySurveyIdAsync(surveyId); var questionReport = await _questionReportRepository.GetBySurveyReportContentAndPositionAsync(surveyReport.Id, questionAnswer.QuestionPosition, questionAnswer.Select); if (!questionAnswer.IsRequired) { var counter = 0; foreach (var ChoiceOptionAnswer in fieldDataAnswer.ChoiceOptionAnswers) { if (ChoiceOptionAnswer.Value) { counter++; } } if (counter == 0) { questionReport.DeleteAnswer(); await Task.CompletedTask; } } if (choiceOptionAnswer.Value) { if (questionAnswer.Content != "") { foreach (var dataSet in questionReport.DataSets) { var index = dataSet._data[choiceOptionAnswer.OptionPosition]; var labelCounter = int.Parse(index); labelCounter++; dataSet._data[choiceOptionAnswer.OptionPosition] = labelCounter.ToString(); await _dataSetRepository.UpdateAsync(dataSet); } } } }
public async Task AddAsync(ChoiceOptionAnswer choiceOptionAnswer) { await _context.ChoiceOptionsAnswers.AddAsync(choiceOptionAnswer); await _context.SaveChangesAsync(); }