Chirp.Radio.PlaylistRequestHelper.client_DownloadStringCompleted C# (CSharp) Method

client_DownloadStringCompleted() private method

private client_DownloadStringCompleted ( object sender, DownloadStringCompletedEventArgs e ) : void
sender object
e System.Net.DownloadStringCompletedEventArgs
return void
        void client_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
        {
            if (e.Error == null)
            {
                var playlistString = e.Result;
                try
                {
                    var json = JObject.Parse(playlistString);
                    var currentTrackFragment = json["now_playing"];
                    var currentTrack = JsonConvert.DeserializeObject<Song>(currentTrackFragment.ToString());

                    var recentlyPlayedFragment = json["recently_played"];
                    var recentlyPlayed = JsonConvert.DeserializeObject<List<Song>>(recentlyPlayedFragment.ToString());

                    var args = new RequestCompletedEventArgs()
                    {
                        CurrentTrack = currentTrack,
                        PreviousTracks = recentlyPlayed
                    };
                    if (RequestCompleted != null)
                    {
                        RequestCompleted(this, args);
                    }
                }
                catch (Exception ex)
                {
                    throw new Exception(ex.ToString());
                }
            }
            else
            {
                if(RequestCompleted != null)
                {
                    RequestCompleted(this, new RequestCompletedEventArgs() { Error = e.Error.Message });
                }
                else
                {
                    throw new Exception("Unable to retrieve playlist");
                }
            }
        }