public IList <FloorModel> Get()
        {
            var floors    = _floorRepository.AllList().OrderByDescending(f => f.CurrentFloor);
            var elevators = _elevatorRepository.AllList();

            var floorModels = new List <FloorModel>();

            foreach (var floor in floors)
            {
                floorModels.Add(new FloorModel(floor.CurrentFloor, floor.TotalPeople, floor.DestinationFloor, elevators));
            }

            return(floorModels);
        }
        /// <summary>
        /// Find the closest Elevator
        /// </summary>
        /// <param name="floor"></param>
        /// <returns></returns>
        private Elevator.Domain.Entities.Elevator GetClosestElevator(Floor floor)
        {
            //get nearest elevator
            var elevators =
                _elevatorRepository.AllList(
                    e =>
                    e.Direction == Direction.Idle);

            if (!elevators.Any())
            {
                return(null);
            }

            var closestElevators = (from e in elevators
                                    select new
                                    { Elevator = e,
                                      Distance = Math.Abs(floor.CurrentFloor - e.CurrentFloor) }).OrderBy(e => e.Distance).First();

            return(closestElevators.Elevator);
        }
Esempio n. 3
0
 public IList <Domain.Entities.Elevator> Get()
 {
     return(_elevatorRepository.AllList());
 }