public void Operate(EnumElevatorDirection direction) { _direction = direction; switch (_direction) { case EnumElevatorDirection.Up: if (_upQueue.Contains(_currentFloor)) { _upQueue.Remove(_currentFloor); _status = EnumElevatorStatus.Stopped; } else { _status = EnumElevatorStatus.Moving; } break; case EnumElevatorDirection.Down: if (_downQueue.Contains(_currentFloor)) { _downQueue.Remove(_currentFloor); _status = EnumElevatorStatus.Stopped; } else { _status = EnumElevatorStatus.Moving; } break; case EnumElevatorDirection.Idle: _status = EnumElevatorStatus.Idle; break; } }
public bool IsRequestOperated(EnumElevatorDirection direction, int destinationFloor) { switch (direction) { case EnumElevatorDirection.Up: return(!_upQueue.Contains(destinationFloor)); case EnumElevatorDirection.Down: return(!_downQueue.Contains(destinationFloor)); default: return(true); } }
public void SetUpQueue(EnumElevatorDirection direction, int destinationFloor) { switch (direction) { case EnumElevatorDirection.Up: if (!_upQueue.Contains(destinationFloor)) { _upQueue.Add(destinationFloor); } break; case EnumElevatorDirection.Down: if (!_downQueue.Contains(destinationFloor)) { _downQueue.Add(destinationFloor); } break; } }