コード例 #1
0
ファイル: Elevator.cs プロジェクト: NedM/elevator-simulator
        private FloorRequest GetNextRequestBelow()
        {
            FloorRequest nextRequestBelow = FloorsBelowCurrent(_downDirectionQueue)?.FirstOrDefault();

            if (null == nextRequestBelow)
            {
                FloorRequest lowestUpRequest = _upDirectionQueue.Peek();

                nextRequestBelow = (lowestUpRequest?.Floor <= CurrentFloor) ? lowestUpRequest : null;
            }

            return(nextRequestBelow);
        }
コード例 #2
0
ファイル: Elevator.cs プロジェクト: NedM/elevator-simulator
        private FloorRequest GetNextRequestAbove()
        {
            var nextRequestAbove = FloorsAboveCurrent(_upDirectionQueue)?.FirstOrDefault();

            if (null == nextRequestAbove)
            {
                FloorRequest highestDownRequest = _downDirectionQueue.Peek();

                nextRequestAbove = (highestDownRequest?.Floor >= CurrentFloor) ? highestDownRequest : null;
            }

            return(nextRequestAbove);
        }