public void Request(CallRequest request) { if (!IsMoving) { if (CurrentFloor == request.Floor.Number) { OpenDoors(); return; } request.RequestServedEvent += RequestServed; request.Execute(this); } else { request.RequestServedEvent += RequestServed; RequestQueue.Enqueue(request); } }