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

BackgroundMediaPlayer_MediaEnded() private method

private BackgroundMediaPlayer_MediaEnded ( MediaPlayer sender, object args ) : void
sender MediaPlayer
args object
return void
        private async void BackgroundMediaPlayer_MediaEnded(MediaPlayer sender, object args)
        {
            var currentPlaylist = (await Dbconnection.QueryAsync<CurrentPlaylist>("SELECT * FROM CurrentPlaylist WHERE CurrentSong = 1")).FirstOrDefault<CurrentPlaylist>();

            List<string> events = new List<string>();

            if (currentPlaylist != null)
            {
                if (!option_single && !option_repeat)
                {
                    var nextPlaylist = (await Dbconnection.QueryAsync<CurrentPlaylist>("SELECT * FROM CurrentPlaylist WHERE PositionId = " + currentPlaylist.PositionId + 1)).FirstOrDefault<CurrentPlaylist>();

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

                        currentPlaylist.CurrentSong = false;
                        nextPlaylist.CurrentSong = true;

                        await Dbconnection.UpdateAsync(currentPlaylist);
                        await Dbconnection.UpdateAsync(nextPlaylist);
                    }
                    else
                    {                        
                        Stop();
                    }
                }
                else if (option_repeat)
                {
                    Play(currentPlaylist.Uri, currentPlaylist.IsUri);
                }
                else
                {
                    Stop();
                }

                events.Add("player");

                if (option_consume && !option_repeat)
                {
                    await Dbconnection.QueryAsync<CurrentPlaylist>("UPDATE CurrentPlaylist SET PositionId = PositionId - 1 WHERE PositionId > " + currentPlaylist.PositionId);
                    await Dbconnection.DeleteAsync(currentPlaylist);

                    events.Add("playlist");
                }

                if (OnIdleEvent != null) OnIdleEvent(this, new IdleEventArgs(events));
            }
        }
#endif
ChimneyServerUserControl