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