// POST api/camera public HttpResponseMessage Post(Camera newCamera) { if(ModelState.IsValid) { try { InMemoryCameraRepo.SingletonInstance.AddCamera(newCamera); var response = Request.CreateResponse(HttpStatusCode.Created, newCamera); //Add location header entry to newly created resource, so comply with ReST constraints response.Headers.Location = new Uri(Url.Link("DefaultApi", new { controller = "Camera", id = newCamera.Id })); return response; } catch (Exception ex) { ThrowHttpResponseException(HttpStatusCode.BadRequest, ex); //400 } } //Modelstate is invalid var modelValidationErrorResponse = Request.CreateResponse(HttpStatusCode.BadRequest); //400 modelValidationErrorResponse.Content = new StringContent(ModelState.GetModelErrors()); return modelValidationErrorResponse; }
// PUT api/camera/5 public HttpResponseMessage Put(Camera camera) { if (ModelState.IsValid) { try { InMemoryCameraRepo.SingletonInstance.UpdateCamera(camera); var response = Request.CreateResponse(HttpStatusCode.OK, camera); //Return 200 return response; } catch (Exception ex) { ThrowHttpResponseException(HttpStatusCode.NotFound, ex); } } //Modelstate is invalid var modelValidationErrorResponse = Request.CreateResponse(HttpStatusCode.BadRequest); //400 modelValidationErrorResponse.Content = new StringContent(ModelState.GetModelErrors()); return modelValidationErrorResponse; }