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); }
/// <summary> /// Register song /// </summary> /// <param name='operations'> /// The operations group for this extension method. /// </param> /// <param name='registerSongRequest'> /// </param> /// <param name='cancellationToken'> /// The cancellation token. /// </param> public static async Task <Song> RegisterSongAsync(this IMusicPlaylistRESTAPI operations, RegisterSongRequest registerSongRequest, CancellationToken cancellationToken = default(CancellationToken)) { using (var _result = await operations.RegisterSongWithHttpMessagesAsync(registerSongRequest, null, cancellationToken).ConfigureAwait(false)) { return(_result.Body); } }
/// <summary> /// Register song /// </summary> /// <param name='operations'> /// The operations group for this extension method. /// </param> /// <param name='registerSongRequest'> /// </param> public static Song RegisterSong(this IMusicPlaylistRESTAPI operations, RegisterSongRequest registerSongRequest) { return(Task.Factory.StartNew(s => ((IMusicPlaylistRESTAPI)s).RegisterSongAsync(registerSongRequest), operations, CancellationToken.None, TaskCreationOptions.None, TaskScheduler.Default).Unwrap().GetAwaiter().GetResult()); }