public IHttpActionResult Update(int id, AlbumModel album) { if (!this.ModelState.IsValid) { return BadRequest(ModelState); } var existingAlbum = this.data.Albums.Find(id); if (existingAlbum == null) { return BadRequest(NoSuchAlbumId); } existingAlbum.Title = album.Title; existingAlbum.Year = album.Year; existingAlbum.Producer = album.Producer; if (album.ArtistIds != null) { foreach (var albumId in album.ArtistIds) { var artist = this.data.Artists.Find(albumId); if (album != null) { existingAlbum.Artists.Add(artist); } else { throw new ArgumentException(NoSuchArtistId); } } } if (album.SongIds != null) { foreach (var songId in album.SongIds) { var song = this.data.Songs.Find(songId); if (song != null) { existingAlbum.Songs.Add(song); } else { throw new ArgumentException(NoSuchSongId); } } } this.data.SaveChanges(); album.AlbumId = existingAlbum.Id; return Ok(album); }
public IHttpActionResult Create(AlbumModel album) { if (!this.ModelState.IsValid) { return BadRequest(ModelState); } var newAlbum = new Album { Title = album.Title, Year = album.Year, Producer = album.Producer }; if (album.ArtistIds != null) { foreach (var id in album.ArtistIds) { var artist = this.data.Artists.Find(id); if (album != null) { newAlbum.Artists.Add(artist); } else { throw new ArgumentException(NoSuchArtistId); } } } if (album.SongIds != null) { foreach (var id in album.SongIds) { var song = this.data.Songs.Find(id); if (song != null) { newAlbum.Songs.Add(song); } else { throw new ArgumentException(NoSuchSongId); } } } this.data.Albums.Add(newAlbum); this.data.SaveChanges(); album.AlbumId = newAlbum.Id; return Ok(album); }