public async Task <IActionResult> Post([FromBody] Model.Models.Contact model) { _logger.LogInformation("Post: Begin"); if (!ModelState.IsValid) { _logger.LogWarning("Post: End (400)"); return(BadRequest(ModelState)); } var result = await _manager.Create(model); switch (result.ResultStatus) { case Common.Enums.ManagerResponseResult.Success: var createdModel = result.Result.First(); var locationUri = LocationUriHelper.GetLocationUriForPost(Request, createdModel.Uid); _logger.LogInformation("Post: End (201)"); return(Created(locationUri, createdModel)); case Common.Enums.ManagerResponseResult.UniqueKeyViolation: _logger.LogWarning("Post: End (409 - UniqueKeyViolation)"); return(StatusCode((int)HttpStatusCode.Conflict, result.ErrorMessage)); default: _logger.LogWarning("Post: End (400 - Error)"); return(BadRequest(result.ErrorMessage ?? "An error occurred")); } }
public async Task <IActionResult> Put(Guid contactUid, Guid uid, [FromBody] Model.Models.ContactDetail model) { _logger.LogInformation("Put: Begin"); if (contactUid == Guid.Empty) { _logger.LogWarning("Put: End (400 - invalid contactUid)"); return(BadRequest()); } if (uid == Guid.Empty) { _logger.LogWarning("Put: End (400 - invalid uid)"); return(BadRequest()); } if (!ModelState.IsValid) { _logger.LogWarning("Put: End (400)"); return(BadRequest(ModelState)); } if (uid != model.Uid) { _logger.LogWarning("Put: End (400 - uid mismatch)"); return(BadRequest(ModelState)); } _manager.Init(contactUid); var result = await _manager.CreateOrUpdate(model); switch (result.ResultStatus) { case Common.Enums.ManagerResponseResult.Created: var uri = LocationUriHelper.GetLocationUriForPut(Request); _logger.LogInformation("Put: End (201)"); return(Created(uri, result.Result.First())); case Common.Enums.ManagerResponseResult.Updated: _logger.LogInformation("Put: End (200)"); return(Ok(result.Result.First())); case Common.Enums.ManagerResponseResult.ForeignKeyViolation: _logger.LogWarning("Post: End (400 - ForeignKeyViolation)"); return(BadRequest(result.ErrorMessage)); case Common.Enums.ManagerResponseResult.UniqueKeyViolation: _logger.LogWarning("Put: End (409 - UniqueKeyViolation)"); return(StatusCode((int)HttpStatusCode.Conflict, result.ErrorMessage)); default: _logger.LogWarning("Put: End (400 - Error)"); return(BadRequest(result.ErrorMessage ?? "An error occurred")); } }