示例#1
0
        public IHttpActionResult UpdateUser([FromBody] ArtistCreationModel updateArtistRequest, int artistId)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            Artist artistToChange;

            artistToChange = _musicManager.GetArtist(artistId);

            if (updateArtistRequest != null)
            {
                if (updateArtistRequest.Name != null)
                {
                    artistToChange.Name = updateArtistRequest.Name;
                }
                if (updateArtistRequest.Description != null)
                {
                    artistToChange.Description = updateArtistRequest.Description;
                }
            }

            try
            {
                _musicManager.UpdateArtist(artistToChange);
            }
            catch (System.ArgumentException)
            {
                return(Content(HttpStatusCode.Unauthorized, "Artist not found"));
            }
            return(Ok(_musicManager.GetArtist(artistToChange.ArtistId)));
        }
示例#2
0
        public IHttpActionResult AddNewArtist([FromBody] ArtistCreationModel artistCreationModel)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            CreateArtistRequest artistRequest;

            try
            {
                artistRequest = new CreateArtistRequest(
                    artistCreationModel.Name,
                    artistCreationModel.Description);
            }
            catch (ArgumentException)
            {
                return(BadRequest("Fields must not be empty"));
            }
            int createdArtistId;

            try
            {
                createdArtistId = _musicManager.CreateArtist(artistRequest);
            }
            catch (AccountAlreadyExistsException ex)
            {
                return(Content(HttpStatusCode.Conflict, ex.Message));
            }
            return(Ok(createdArtistId));
        }