public IHttpActionResult Post(Album album) { if (!ModelState.IsValid) { return BadRequest(); } this.Data.Albums.Add(album); this.Data.SaveChanges(); return Ok(album); }
public IHttpActionResult Put(int id, Album album) { if (!ModelState.IsValid) { return BadRequest(); } var albumFromDb = this.Data.Albums.GetById(id); albumFromDb = album; this.Data.Albums.Update(albumFromDb); this.Data.SaveChanges(); return Ok(album); }
private Album AddSongsToAlbum(int[] songIds, Album album) { album.Songs.Clear(); foreach (var songId in songIds) { var songToAdd = this.data.Songs.Find(songId); if (songToAdd == null) { return null; } album.Songs.Add(songToAdd); } return album; }
public IHttpActionResult Post([FromBody]AlbumDataModel model) { if (!this.ModelState.IsValid) { return this.BadRequest(this.ModelState); } if (this.data.Producers.Find(model.ProducerId) == null) { return this.BadRequest("No such producer can be found."); } var album = new Album { Name = model.Name, ProducerId = model.ProducerId, Year = model.Year }; if (this.AddArtistsToAlbum(model.ArtistIds, album) == null || this.AddSongsToAlbum(model.SongIds, album) == null) { return this.BadRequest("No such song/artist can be found."); } this.data.Albums.Add(album); this.data.Savechanges(); return this.Created(this.Url.ToString(), album); }
private Album AddArtistsToAlbum(int[] artistIds, Album album) { album.Artists.Clear(); foreach (var artistId in artistIds) { var artistToAdd = this.data.Artists.Find(artistId); if (artistToAdd == null) { return null; } album.Artists.Add(artistToAdd); } return album; }