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"));
}