public JsonResult Post([FromBody] QuestViewModel vm) { try { if (ModelState.IsValid) { var newQuest = Mapper.Map <Quest>(vm); newQuest.UserName = User.Identity.Name; // Save to the Database _logger.LogInformation("Attempting to save a new quest"); _repository.AddQuest(newQuest); if (_repository.SaveAll()) { Response.StatusCode = (int)HttpStatusCode.Created; return(Json(Mapper.Map <QuestViewModel>(newQuest))); } } } catch (Exception ex) { _logger.LogError("Failed to save new quest", ex); Response.StatusCode = (int)HttpStatusCode.BadRequest; return(Json(new { Message = ex.Message })); } Response.StatusCode = (int)HttpStatusCode.BadRequest; return(Json(new { Message = "Failed", ModelState = ModelState })); }