예제 #1
0
        public async Task <IActionResult> CreateSurvey()
        {
            try
            {
                await _surveyService.CreateSurveyAsync();

                return(Ok());
            }
            catch (Exception)
            {
                return(BadRequest());
            }
        }
        public async Task <IActionResult> Create(SurveyDTO survey)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    var result = await _surveyService.CreateSurveyAsync(survey);

                    if (result.Succeeded)
                    {
                        return(RedirectToAction("Edit", new { id = result.Item.Id }));
                    }
                    else
                    {
                        ModelState.AddModelError(string.Empty, $"Unable to create survey. (HTTP {result.StatusCode})");
                        switch (result.StatusCode)
                        {
                        case (int)HttpStatusCode.Unauthorized:
                            return(ReAuthenticateUser());

                        case (int)HttpStatusCode.Forbidden:
                            ViewBag.Forbidden = true;
                            return(View(survey));

                        default:
                            return(View(survey));
                        }
                    }
                }
                else
                {
                    ModelState.AddModelError(string.Empty, "Bad Request");
                    return(View(survey));
                }
            }
            catch (AuthenticationException)
            {
                return(ReAuthenticateUser());
            }
            catch
            {
                ModelState.AddModelError(string.Empty, "Unable to create survey.");
            }
            return(View("~/Views/Shared/Error.cshtml"));
        }
예제 #3
0
        public async Task <IActionResult> SendSurveyEmail(int surveyTemplateId)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            try
            {
                var surveyId = _surveyService.CreateSurveyAsync(surveyTemplateId).Result;
                var survey   = await _surveyService.GetByIdAsync(surveyId);

                await _surveyReportService.CreateAsync(surveyId, survey.Title, survey.description);

                await _surveyEmailFactory.SendSurveyEmailAsync(surveyId);

                await _surveyEmailFactory.SendSurveyEmailToUnregisteredUsersAsync(surveyId);

                return(StatusCode(200));
            }
            catch (Exception e)
            {
                return(BadRequest(e.Message));
            }
        }