public HttpResponseMessage RegisterSong([FromBody] RegisterSongRequest request) { try { logger.Info("Registering song"); var savedSong = playlist.Add(request); return(this.Request.CreateResponse(HttpStatusCode.Created, savedSong)); } catch (SongAlreadyExistsException e) { logger.Warn("Song already registered"); return(this.Request.CreateResponse(HttpStatusCode.BadRequest)); } }
/// <summary> /// Registers a song. /// </summary> /// <param name="request">The song request to register.</param> /// <returns>The registered song.</returns> public Song AddSong(RegisterSongRequest request) { Song result; try { var songId = playlist.Add(request); result = playlist.GetById(songId).GetValueOrDefault(new Song()); } catch (SongAlreadyExistsException e) { result = new Song(); } catch (Exception e) { logger.Error(e.ToString()); System.Diagnostics.Trace.Write(e.ToString()); result = new Song(); } return(result); }
public void AddAndRetrieveSong() { var savedSongId = musicPlaylist.Add(_registerSongRequest); var savedSong = musicPlaylist.GetById(savedSongId); Assert.AreEqual(savedSong.HasValue, true); Assert.AreEqual(savedSong.Value.Artist, "::artist::"); Assert.AreEqual(savedSong.Value.Title, "::title::"); Assert.IsTrue(savedSong.Value.Genres.SequenceEqual(new List <string>() { "pop" })); }