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

ChimneyMPDMediaElement_MediaEnded() private method

private ChimneyMPDMediaElement_MediaEnded ( object sender, RoutedEventArgs e ) : void
sender object
e Windows.UI.Xaml.RoutedEventArgs
return void
        async void ChimneyMPDMediaElement_MediaEnded(object sender, RoutedEventArgs e)
        {
            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));
            }
        }
ChimneyServerUserControl