public HttpResponseMessage Create(Hl7.Fhir.Model.Observation fhirObservation) { HttpResponseMessage message = new HttpResponseMessage(); Observation observation = ObservationMapper.MapResource(fhirObservation); observation = (Observation)ControllerUtils.AddMetadata(observation, ControllerUtils.CREATE); db.Observations.Add(observation); db.SaveChanges(); message.Content = new StringContent("Observation created!", Encoding.UTF8, "text/html"); message.StatusCode = HttpStatusCode.Created; message.Headers.Location = new Uri(Url.Link("SpecificObservation", new { id = observation.ObservationId })); return(message); }
public HttpResponseMessage Update(Hl7.Fhir.Model.Observation fhirObservation, int observationId) { HttpResponseMessage message = new HttpResponseMessage(); if (observationId != int.Parse(fhirObservation.Id)) { message.StatusCode = HttpStatusCode.BadRequest; message.Content = new StringContent("Mismatch of observation ID! Provided " + observationId + " in URL but found " + fhirObservation.Id + "in payload!", Encoding.UTF8, "text/html"); return(message); } Observation observation = ObservationMapper.MapResource(fhirObservation); observation = (Observation)ControllerUtils.AddMetadata(observation, ControllerUtils.UPDATE); db.Entry(observation).State = EntityState.Modified; try { db.SaveChanges(); } catch (DbUpdateConcurrencyException) { if (!ObservationExists(observationId)) { message.StatusCode = HttpStatusCode.NotFound; message.Content = new StringContent("observation with id " + observationId + " not found!", Encoding.UTF8, "text/html"); return(message); } else { throw; } } message.StatusCode = HttpStatusCode.OK; return(message); }