Пример #1
0
        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);
        }
Пример #2
0
        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);
        }