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 })); }