public JsonResult Post([FromBody] AddInventoryViewModel vm) { try { if (ModelState.IsValid) { if (!_repository.InventoryContains(vm.Name)) { var newItem = Mapper.Map <InventoryItem>(vm); newItem.Atp = (newItem.Quantity + newItem.Actual) - newItem.Promised; // Save to the Database _logger.LogInformation("Attempting to save a new item"); _repository.AddItem(newItem); if (_repository.SaveAll()) { Response.StatusCode = (int)HttpStatusCode.Created; return(Json(Mapper.Map <ReadInventoryViewModel>(newItem))); } } } } catch (Exception ex) { _logger.LogError("Failed to save new item", ex); Response.StatusCode = (int)HttpStatusCode.BadRequest; return(Json(new { Message = ex.Message })); } Response.StatusCode = (int)HttpStatusCode.BadRequest; return(Json(new { Message = "Failed", ModelState = ModelState })); }