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

chimneyMpdServer_OnPlaylistDelete() private method

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

            string playlistName = string.Empty;
            int position = 0;

            if (e.arguments.Count > 1)
            {
                playlistName = e.arguments[0];
                suc = int.TryParse(e.arguments[1], out position);
            }

            if (suc)
            {
                var playlistToDeleteIn = await Dbconnection.FindAsync<Playlist>(o => o.Name == playlistName);

                if (playlistToDeleteIn != null)
                {
                    var currentPlaylistFiles = await Dbconnection.QueryAsync<PlaylistFile>("SELECT * FROM PlaylistFiles WHERE PlaylistId = " + playlistToDeleteIn.PlaylistId + " AND Position = " + position);

                    PlaylistFile playlistFile = (currentPlaylistFiles.Count > 0) ? currentPlaylistFiles[0] : null;

                    if (playlistFile != null)
                    {
                        await Dbconnection.QueryAsync<CurrentPlaylist>("UPDATE PlaylistFiles SET Position=Position-1 WHERE PlaylistId " + playlistToDeleteIn.PlaylistId + " Position > " + playlistFile.Position + " AND Position <= " + position);
                        await Dbconnection.DeleteAsync(playlistFile);

                        playlistToDeleteIn.LastModified = DateTime.Now.ToString("s");

                        await Dbconnection.UpdateAsync(playlistToDeleteIn);
                    }
                }
            }

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

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