public IHttpActionResult Put(int id, [FromBody] ArtistDataModel model)
        {
            if (!this.ModelState.IsValid)
            {
                return(this.BadRequest(this.ModelState));
            }

            var artist = this.data.Artists.Find(id);

            if (artist == null)
            {
                return(this.BadRequest("No such artist can be found."));
            }

            if (this.data.Countries.Find(model.CountryId) == null)
            {
                return(this.BadRequest("No such country can be found."));
            }

            artist.Name      = model.Name;
            artist.CountryId = model.CountryId;
            this.data.Artists.Update(artist);
            this.data.Savechanges();

            return(this.Ok(artist));
        }
        public IHttpActionResult Update(ArtistDataModel artist)
        {
            if (artist == null || artist.Id == null)
            {
                return(this.BadRequest("You must provide artist ID."));
            }

            var existingArtist = this.db.Artists.Find(artist.Id);

            if (existingArtist == null)
            {
                return(this.BadRequest("An artist with the provided ID do not exist."));
            }

            if (artist.Name != null)
            {
                existingArtist.Name = artist.Name;
            }

            if (artist.Country != null)
            {
                existingArtist.Country = artist.Country;
            }

            if (artist.Birthday != null)
            {
                existingArtist.Birthday = artist.Birthday;
            }

            this.db.SaveChanges();

            return(this.Ok(existingArtist));
        }
        public IHttpActionResult Post([FromBody] ArtistDataModel artistModel)
        {
            if (!ModelState.IsValid)
            {
                return(this.BadRequest(ModelState));
            }

            var artist = ArtistDataModel.FromModelToData(artistModel);

            this.Data.Artists.Add(artist);
            this.Data.SaveChanges();

            return(this.Created(this.Url.ToString(), artist));
        }
        public IHttpActionResult Create(ArtistDataModel newArtist)
        {
            if (newArtist == null || newArtist.Name == null)
            {
                return(this.BadRequest("You must provide artist name."));
            }

            var artist = new Artist
            {
                Name     = newArtist.Name,
                Country  = newArtist.Country,
                Birthday = newArtist.Birthday
            };

            this.db.Artists.Add(artist);
            this.db.SaveChanges();

            return(this.Ok(artist));
        }
        public IHttpActionResult Post([FromBody] ArtistDataModel model)
        {
            if (!this.ModelState.IsValid)
            {
                return(this.BadRequest(this.ModelState));
            }

            if (this.data.Countries.Find(model.CountryId) == null)
            {
                return(this.BadRequest("No such country can be found."));
            }

            var artist = new Artist
            {
                Name      = model.Name,
                CountryId = model.CountryId
            };

            this.data.Artists.Add(artist);
            this.data.Savechanges();

            return(this.Created(this.Url.ToString(), artist));
        }
        public IHttpActionResult Put(int id, [FromBody] ArtistDataModel artistModel)
        {
            if (!ModelState.IsValid)
            {
                return(this.BadRequest(ModelState));
            }

            var artist = this.Data.Artists.SearchFor(a => a.Id == id).FirstOrDefault();

            if (artist == null)
            {
                return(this.BadRequest("Invalid id"));
            }

            artist.Country     = string.IsNullOrEmpty(artistModel.Country) ? artist.Country : artistModel.Country;
            artist.Name        = string.IsNullOrEmpty(artistModel.Name) ? artist.Name : artistModel.Name;
            artist.DateOfBirth = artistModel.DateOfBirth;

            this.Data.Artists.Update(artist);
            this.Data.SaveChanges();

            return(this.Ok());
        }