public async Task <IHttpActionResult> Post(ItemModel model) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var itemsWithExtId = await Dao.GetItemsByExternalId(model.ExternalId); if (itemsWithExtId.Count() != 0) { return(BadRequest("Item with that ExternalID already exists")); } var item = ItemMapper.ModelToEntity(model); var newId = await Dao.CreateItem(item); if (newId == 0) { return(InternalServerError()); } var newItem = await Dao.GetItemById(newId); return(CreatedAtRoute("GetItemById", new { id = newId }, ItemMapper.EntityToModel(newItem))); }
public async Task <IHttpActionResult> Put(int id, ItemModel model) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (id == 0) { return(BadRequest("Id needed")); } var itemToUpdate = await Dao.GetItemById(id); if (itemToUpdate is null) { return(NotFound()); } if (model.ExternalId != itemToUpdate.ExternalId) { var itemsWithExtId = await Dao.GetItemsByExternalId(model.ExternalId); if (itemsWithExtId.Count() != 0) { return(BadRequest("Item with that ExternalID already exists")); } } var item = ItemMapper.ModelToEntity(model); var success = await Dao.UpdateItem(id, item); if (!success) { return(InternalServerError()); } var result = await Dao.GetItemById(id); return(Ok(result)); }