Example #1
0
        public IHttpActionResult UpdateSong([FromBody] SongCreationModel updateSongRequest, int songId)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            Song songToChange;

            songToChange = _musicManager.GetSong(songId);

            if (updateSongRequest != null)
            {
                if (updateSongRequest.Name != null)
                {
                    songToChange.Name = songToChange.Name;
                }
                if (updateSongRequest.Text != null)
                {
                    songToChange.Text = songToChange.Text;
                }
            }

            try
            {
                _musicManager.UpdateSong(songToChange, updateSongRequest.Artist);
            }
            catch (System.ArgumentException)
            {
                return(Content(HttpStatusCode.Unauthorized, "Song not found"));
            }

            return(Ok(_musicManager.GetSong(songId)));
        }
Example #2
0
        public IHttpActionResult AddNewSong([FromBody] SongCreationModel songCreationModel)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            CreateSongRequest songRequest;

            try
            {
                songRequest = new CreateSongRequest(
                    songCreationModel.Name,
                    songCreationModel.Text,
                    songCreationModel.Artist);
            }
            catch (ArgumentException)
            {
                return(BadRequest("Fields must not be empty"));
            }
            int createdSongId;

            try
            {
                createdSongId = _musicManager.CreateSong(songRequest);
            }
            catch (AccountAlreadyExistsException ex)
            {
                return(Content(HttpStatusCode.Conflict, ex.Message));
            }
            return(Ok(createdSongId));
        }