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);
        }
Пример #3
0
 /// <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);
     }
 }
Пример #4
0
 /// <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());
 }