示例#1
0
        public async Task <ActionResult <QuestionUpdateVM> > UpdateQuestion(int questionId, [FromBody] QuestionDto inputModel)
        {
            if (!this.ModelState.IsValid)
            {
                var result = new QuestionUpdateVM();
                result.Errors = this.ModelState.SelectMany(e => e.Value.Errors).Select(e => e.ErrorMessage).ToArray();
                return(Ok(result));
            }

            // Get question
            var question = await askDbContext.Questions.FindAsync(questionId);

            if (question == null)
            {
                return(NotFound());
            }

            // Update question
            question.CategoryId   = int.Parse(inputModel.CategoryId);
            question.DisplayName  = inputModel.DisplayName;
            question.EmailAddress = inputModel.EmailAddress;
            question.QuestionText = inputModel.QuestionText;

            if (string.IsNullOrWhiteSpace(inputModel.AnswerText))
            {
                question.AnswerText   = null;
                question.DateAnswered = null;
            }
            else
            {
                question.AnswerText = inputModel.AnswerText;
                if (!question.DateAnswered.HasValue)
                {
                    question.DateAnswered = DateTime.Now;
                }
            }

            await askDbContext.SaveChangesAsync();

            return(Ok(new QuestionUpdateVM()
            {
                Success = true
            }));
        }