// Request an elevator to current location (if current location is not RC) public void RequestElevator(int floorNumber) { var callBtnToPress = CallButtonsList.Find(btn => btn.Floor == floorNumber); Elevator chosenElevator = callBtnToPress.Press(); // Do requests until elevator has reached the final destination (RC) while (chosenElevator.CurrentFloor != Elevator.OriginFloor) { chosenElevator.DoRequests(); } }
// Assigns a column and elevator to use when making a request from RC via the board buttons public void AssignElevator(int requestedFloor) { var boardBtnToPress = BoardButtonList.Find(btn => btn.RequestedFloor == requestedFloor); Elevator chosenElevator = boardBtnToPress.Press(); // Do requests until elevator has reached the floor where the call was made (RC floor) while (chosenElevator.CurrentFloor != Elevator.OriginFloor) { chosenElevator.DoRequests(); } // Set a request for the elevator to go to requested floor, once picked up string newDirection = (chosenElevator.CurrentFloor < requestedFloor) ? "up" : "down"; chosenElevator.SendRequest(requestedFloor, newDirection); // Do requests until elevator has reached requested floor while (chosenElevator.CurrentFloor != requestedFloor) { chosenElevator.DoRequests(); } }