Beispiel #1
0
        public async Task <IActionResult> PostOption(Guid formId, Guid questionId, [FromBody] QuestionOption option)
        {
            var subject = _httpContextAccessor.HttpContext.User.GetSubject().AsGuid();
            var form    = await _formService.GetByIdAsync(formId);

            if (form.AuthorId != subject)
            {
                return(Unauthorized());
            }

            var question = await _questionService.GetByIdAsync(form, questionId);

            var created = await _questionService.AddOption(question, option);

            return(new JsonResult(created, JsonSerializationConstants.SerializerOptions));
        }
        public async Task <IActionResult> AddOption(Option option)
        {
            if (option == null)
            {
                return(BadRequest($"{option} is null"));
            }

            var opn = await _questionService.AddOption(option);

            if (!string.IsNullOrEmpty(opn))
            {
                return(NotFound(opn));
            }

            return(Created("option/add", opn));
        }
        public async Task <ActionResult> PostOptionAsync([FromBody] QuestionOption questionOption, int id)
        {
            try
            {
                var entity = _questionService.GetQuestionById(id);
                if (entity == null)
                {
                    return(NotFound());
                }

                if (questionOption.ValidationErrors().Any())
                {
                    return(StatusCode((int)HttpStatusCode.PreconditionFailed, string.Join(" | ", questionOption.ValidationErrors())));
                }

                var newQuestionOption = new QuestionOption
                {
                    QuestionId = id,
                    // Question = entity,
                    Content      = questionOption.Content,
                    OptionLetter = questionOption.OptionLetter,
                    IsCorrect    = questionOption.IsCorrect,
                    IsDeleted    = false,
                    IsDisplayed  = true,
                    CreatedOn    = DateTime.Now,
                    UpdatedOn    = DateTime.Now
                };

                var result = await _questionService.AddOption(newQuestionOption);

                if (result)
                {
                    return(StatusCode((int)HttpStatusCode.Created, "Option added successfully !!!"));
                }
                return(StatusCode((int)HttpStatusCode.OK, "Option not added !!!"));
            }

            //catch (Exception ex) { return this.custom_error(ex); } // TODO
            catch (Exception ex) { return(StatusCode((int)HttpStatusCode.InternalServerError, ex.Message)); }
        }