Ejemplo n.º 1
0
        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;
            }
        }
Ejemplo n.º 2
0
        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);
            }
        }
Ejemplo n.º 3
0
        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;
            }
        }