async void chimneyMpdServer_OnMoveId(object sender, ResponseEventArgs e)
{
bool suc = false;
int id = 0;
int position = 0;
if (e.arguments.Count > 1)
{
suc = int.TryParse(e.arguments[0], out id);
suc = (suc) ? int.TryParse(e.arguments[1], out position) : false;
}
if (suc)
{
var currentPlaylists = await Dbconnection.FindAsync<CurrentPlaylist>(o => o.FileId == id);
if (position >= 0 && currentPlaylists != null)
{
await Dbconnection.QueryAsync<CurrentPlaylist>("UPDATE CurrentPlaylist SET PositionId=PositionId+1 WHERE PositionId >= " + position);
if (position > currentPlaylists.PositionId)
{
await Dbconnection.QueryAsync<CurrentPlaylist>("UPDATE CurrentPlaylist SET PositionId=PositionId-1 WHERE PositionId > " + currentPlaylists.PositionId + " AND PositionId <= " + position);
}
currentPlaylists.PositionId = position;
await Dbconnection.UpdateAsync(currentPlaylists);
}
else suc = false;
suc = true;
}
chimneyMpdServer.AppendResponse(string.Empty, e.id, e.position);
if (OnIdleEvent != null) OnIdleEvent(this, new IdleEventArgs("playlist"));
}