Chimney.Shared.UserControls.ChimneyServerUserControl.chimneyMpdServer_OnPlay C# (CSharp) Method

chimneyMpdServer_OnPlay() private method

private chimneyMpdServer_OnPlay ( object sender, ResponseEventArgs e ) : void
sender object
e Chimney.MPD.ResponseEventArgs
return void
        async void chimneyMpdServer_OnPlay(object sender, ResponseEventArgs e)
        {
            int index = 0;
            if (e.arguments.Count > 0)
            {
                try
                {
                    index = Convert.ToInt32(e.arguments[0]);
                }
                catch (Exception ex)
                {
                    Debug.WriteLine(ex.Message);
                }
            }

#if WINDOWS_PHONE_APP
            if (current_state.Equals("pause") && BackgroundMediaPlayer.Current.CurrentState == MediaPlayerState.Paused)
#else

            bool statetrue = false;
            await Windows.ApplicationModel.Core.CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(CoreDispatcherPriority.Normal,
() =>
{
            statetrue = (ChimneyMPDMediaElement.CurrentState == MediaElementState.Paused) ? true : false;
});

            if (current_state.Equals("pause") && statetrue)
#endif
            {
                PlayOnPause();

                //if (OnIdleEvent != null) OnIdleEvent(this, new IdleEventArgs("player"));
            }           
            else
            {
                CurrentPlaylist song = null;

                var currentPlaylist = await Dbconnection.QueryAsync<CurrentPlaylist>("SELECT * FROM CurrentPlaylist");

                if (currentPlaylist.Count > 0)
                {
                    if (option_random)
                    {
                        Random ran = new Random();
                        song = currentPlaylist[ran.Next(0, currentPlaylist.Count - 1)];
                    }
                    else if (currentPlaylist.Count > index)
                    {                      
                        song = currentPlaylist[index];
                    }

                    if (song != null)
                    {
                       Play(song.Uri, song.IsUri);
                    }

                    await Dbconnection.QueryAsync<CurrentPlaylist>("UPDATE CurrentPlaylist SET CurrentSong = 0 WHERE CurrentSong = 1");

                    song.CurrentSong = true;
                    await Dbconnection.UpdateAsync(song);
                }
            }

            chimneyMpdServer.AppendResponse(string.Empty, e.id, e.position);

            if (OnIdleEvent != null) OnIdleEvent(this, new IdleEventArgs("player"));

        }
ChimneyServerUserControl