/// <summary> /// Updates an announcement using details in the given model /// </summary> /// <param name="uam">Model containing details of the announcement to update</param> public async Task UpdateAnnouncement(UpdateAnnouncementModel uam) { var announcement = await _db.Announcements.FindAsync(uam.Id); if(announcement == null) { throw new Exception("No announcement with id: " + uam.Id); } announcement.Title = uam.Title; announcement.Description = uam.Description; _db.Entry(announcement).State = EntityState.Modified; try { await _db.SaveChangesAsync(); } catch(DbUpdateConcurrencyException) { // Deleted before update maybe? if(!AnnouncementExists(announcement.Id)) { throw new Exception("No announcement with id: " + uam.Id); } } }
public async Task<IHttpActionResult> PutAnnouncement(UpdateAnnouncementModel uam) { if(!ModelState.IsValid) { return BadRequest(ModelState); } try { await _announcementManager.UpdateAnnouncement(uam); } catch(Exception ex) { throw new HttpResponseException(Request.CreateErrorResponse(HttpStatusCode.NotFound, ex.Message)); } return StatusCode(HttpStatusCode.NoContent); }