public void Receive(MoveOperation moveOperation) { PerformMoveOperationEventArgs performMoveOperationEventArgs = new PerformMoveOperationEventArgs(this, moveOperation); OnPerformMoveOperation?.Invoke(this, performMoveOperationEventArgs); moveOperation.PerformOperation(this); MoveOperationPerformedEventArgs moveOperationPerformedEventArgs = new MoveOperationPerformedEventArgs(this, moveOperation); OnMoveOperationPerformed?.Invoke(this, moveOperationPerformedEventArgs); }