예제 #1
0
        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);
        }
예제 #2
0
        public async Task <IActionResult> Post(NewSurveyDto newSurvey)
        {
            var createdSurvey = await _surveysService.Create(newSurvey);

            return(Ok(createdSurvey));
        }