public async Task <NewSurveyDto> Create(NewSurveyDto newSurveyDto) { if (newSurveyDto == null) { throw new ArgumentNullException(); } var guid = Guid.NewGuid().ToString(); var newSurvey = new Survey { Guid = guid, AuthorId = newSurveyDto.AuthorId, AnonymousAnswers = newSurveyDto.AnonymousAnswers, Title = newSurveyDto.Title, CreationDate = DateTime.Now }; var surveyDto = _mapper.Map <NewSurveyDto>(newSurvey); var surveyId = await _repository.Create(newSurvey); if (newSurveyDto.Questions != null) { foreach (var question in newSurveyDto.Questions) { var questionId = await _questionsRepository.Create(new Question() { SurveyId = surveyId, QuestionText = question.QuestionText, Type = question.Type }); if (question.Type == QuestionTypeEnum.MultipleChoice && question.Choices != null) { foreach (var choice in question.Choices) { await _choicesRepository.Create(new Choice() { QuestionId = questionId, ChoiceText = choice.ChoiceText }); } } } } return(surveyDto); }
public async Task <IActionResult> Post(NewSurveyDto newSurvey) { var createdSurvey = await _surveysService.Create(newSurvey); return(Ok(createdSurvey)); }