public void Travel() { List <Passenger> passengersInDirectionOfElevator = GetPassengersMovingInDirectionOfElevator(); if (passengersInDirectionOfElevator.Count > 0) { passengersInDirectionOfElevator.OrderBy(p => p.Destination.Position).ToList(); this.Position = passengersInDirectionOfElevator.LastOrDefault().Destination; } else if (Passengers.Count > 0) { Passengers.OrderBy(p => p.Destination.Position).ToList(); this.Position = Passengers.LastOrDefault().Destination; } }