public AddressBase AddressEdit(AddressEdit editedItem) { // Ensure that we can continue if (editedItem == null) { return(null); } // Attempt to fetch the underlying object // Must include the required associated object, // so that the SetValues() and SaveChanges() methods will work var storedItem = ds.Addresses .Include("Employee") .SingleOrDefault(e => e.Id == editedItem.Id); if (storedItem == null) { return(null); } else { // Fetch the object from the data store - ds.Entry(storedItem) // Get its current values collection - .CurrentValues // Set those to the edited values - .SetValues(editedItem) ds.Entry(storedItem).CurrentValues.SetValues(editedItem); // The SetValues() method ignores missing properties and navigation properties ds.SaveChanges(); return(Mapper.Map <AddressBase>(storedItem)); } }
// PUT: api/Addresses/5 public IHttpActionResult Put(int id, [FromBody] AddressEdit editedItem) { // Ensure that an "editedItem" is in the entity body if (editedItem == null) { return(BadRequest("Must send an entity body with the request")); } // Ensure that the id value in the URI matches the id value in the entity body if (id != editedItem.Id) { return(BadRequest("Invalid data in the entity body")); } // Ensure that we can use the incoming data if (ModelState.IsValid) { // Attempt to update the item var changedItem = m.AddressEdit(editedItem); // Notice the ApiController convenience methods if (changedItem == null) { // HTTP 400 return(BadRequest("Cannot edit the object")); } else { // HTTP 200 with the changed item in the entity body return(Ok(changedItem)); } } else { return(BadRequest(ModelState)); } }
public AddressBase EditAddress(AddressEdit editedItem) { // Ensure that we can continue if (editedItem == null) { return null; } // Attempt to fetch the underlying object // Must include the required associated object, // so that the SetValues() and SaveChanges() methods will work var storedItem = ds.Addresses .Include("Employee") .SingleOrDefault(e => e.Id == editedItem.Id); if (storedItem == null) { return null; } else { // Fetch the object from the data store - ds.Entry(storedItem) // Get its current values collection - .CurrentValues // Set those to the edited values - .SetValues(editedItem) ds.Entry(storedItem).CurrentValues.SetValues(editedItem); // The SetValues() method ignores missing properties and navigation properties ds.SaveChanges(); return Mapper.Map<AddressBase>(storedItem); } }