private void chessboardControl_MoveFinished(object sender, EventArgs e)
{
var lastMove = this.gameProvider.History.GetLastMove();
bool needPawnPromotion = (int)lastMove.Type >= (int)MoveType.Promotion;
this.canSolverStart = true;
this.chessboardControl.AnimateLast();
if (needPawnPromotion)
{
this.chessboardControl.UserPromotePawn();
this.canSolverStart = false;
}
this.chessboardControl.ChangeCurrentPlayer();
this.UpdateRedoStatus();
}