public async Task <IHttpActionResult> Put(int id, [FromBody] LinkDtoModel link) { if (link == null) { return(BadRequest("Required data was not supplied.")); } if (!await Exists(id)) { return(NotFound()); } var record = await db.Links.FindAsync(id); if (link.Description != null && record.Description != link.Description) { record.Description = link.Description; } if (link.URL != null && record.URL != link.URL) { record.URL = link.URL; } if (link.LinkCategory.ID != null && record.LinkCategoryID != link.LinkCategory.ID) { record.LinkCategoryID = (int)link.LinkCategory.ID; } return(await SaveChanges(record, ActionType.Put)); }
public async Task <IHttpActionResult> Post([FromBody] LinkDtoModel link) { if (link == null || link.LinkCategory?.ID == null) { return(BadRequest("Required data was not supplied.")); } if (await Exists(link.URL, link.Description)) { return(Conflict()); } var record = Mapper.Map <LinkModel>(link); record.LinkCategoryID = (int)link.LinkCategory.ID; record.LinkCategory = null; // Otherwise, it will try to create a new category db.Links.Add(record); return(await SaveChanges(record, ActionType.Post)); }