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

chimneyMpdServer_OnPrevious() private method

private chimneyMpdServer_OnPrevious ( object sender, ResponseEventArgs e ) : void
sender object
e Chimney.MPD.ResponseEventArgs
return void
        async void chimneyMpdServer_OnPrevious(object sender, ResponseEventArgs e)
        {
            var currentPlaylist = (await Dbconnection.QueryAsync<CurrentPlaylist>("SELECT * FROM CurrentPlaylist WHERE CurrentSong = 1")).FirstOrDefault<CurrentPlaylist>();

            if (currentPlaylist != null)
            {
                int index = (currentPlaylist.PositionId > 0) ? currentPlaylist.PositionId - 1 : 0;
                var previousPlaylist = (await Dbconnection.QueryAsync<CurrentPlaylist>("SELECT * FROM CurrentPlaylist WHERE Position = " + index)).FirstOrDefault<CurrentPlaylist>();

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

                    currentPlaylist.CurrentSong = false;
                    previousPlaylist.CurrentSong = true;

                    await Dbconnection.UpdateAsync(currentPlaylist);
                    await Dbconnection.UpdateAsync(previousPlaylist);
                }
            }
            chimneyMpdServer.AppendResponse(string.Empty, e.id, e.position);

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

        }
ChimneyServerUserControl