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

chimneyMpdServer_OnSeekCur() private method

private chimneyMpdServer_OnSeekCur ( object sender, ResponseEventArgs e ) : void
sender object
e Chimney.MPD.ResponseEventArgs
return void
        async void chimneyMpdServer_OnSeekCur(object sender, ResponseEventArgs e)
        {
            bool suc = false;

            bool canseek = false;

#if WINDOWS_PHONE_APP
            canseek = BackgroundMediaPlayer.Current.CanSeek;
#else
            try
            {
                await Windows.ApplicationModel.Core.CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(CoreDispatcherPriority.Normal,
() =>
{
    canseek = ChimneyMPDMediaElement.CanSeek;
}); 
}
            catch (Exception ex)
            {
                Debug.WriteLine(ex.Message);
                canseek = false;
            }
#endif
            if (canseek)
            {
                if (e.arguments.Count > 0)
                {
                    int newpos = 0;

                    if (e.arguments[0].StartsWith("+"))
                    {
                        suc = int.TryParse(e.arguments[0].Remove(0, 1), out newpos);
                        if (suc)
                        {
#if WINDOWS_PHONE_APP
                            BackgroundMediaPlayer.Current.Position = BackgroundMediaPlayer.Current.Position + new TimeSpan(0, 0, newpos);
#else
                            try
                            {
                                await Windows.ApplicationModel.Core.CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(CoreDispatcherPriority.Normal,
() =>
{
    ChimneyMPDMediaElement.Position = ChimneyMPDMediaElement.Position + new TimeSpan(0, 0, newpos);
}); 
}
                            catch (Exception ex)
                            {
                                Debug.WriteLine(ex.Message);
                            }
#endif  
                         }
                    }
                    else if (e.arguments[0].StartsWith("-"))
                    {
                        suc = int.TryParse(e.arguments[0].Remove(0,1), out newpos);
                        if (suc)
                        {
#if WINDOWS_PHONE_APP
                            BackgroundMediaPlayer.Current.Position = BackgroundMediaPlayer.Current.Position - new TimeSpan(0, 0, newpos);
#else
                            try
                            {
                                await Windows.ApplicationModel.Core.CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(CoreDispatcherPriority.Normal,
() =>
{
    ChimneyMPDMediaElement.Position = ChimneyMPDMediaElement.Position - new TimeSpan(0, 0, newpos);
}); 
                            }
                            catch (Exception ex)
                            {
                                Debug.WriteLine(ex.Message);
                            }

#endif
                        }
                    }
                    else
                    {
                        suc = int.TryParse(e.arguments[0], out newpos);
                        if(suc)
                        {
#if WINDOWS_PHONE_APP
                            BackgroundMediaPlayer.Current.Position = new TimeSpan(0, 0, newpos);
#else
                            try
                            {
                                await Windows.ApplicationModel.Core.CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(CoreDispatcherPriority.Normal,
() =>
{
    ChimneyMPDMediaElement.Position = new TimeSpan(0, 0, newpos);
});
                            }
                            catch (Exception ex)
                            {
                                Debug.WriteLine(ex.Message);
                            }
#endif
                        }
                    }
                }
            }


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

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