Esempio n. 1
0
        public async Task <ActionResult <IEnumerable <SituacaoDroneDTO> > > GetSituacaoDrone()
        {
            var drones = await _droneService.GetAll();

            IList <SituacaoDroneDTO> situacaoDrones = new List <SituacaoDroneDTO>();

            foreach (var drone in drones)
            {
                SituacaoDroneDTO situacaoDrone = new SituacaoDroneDTO();
                situacaoDrone.Drone = drone;

                var droneItinerario = _droneItinerarioService.GetAll().Result.SingleOrDefault(x => x.DroneId == drone.Id);

                if (droneItinerario == null)
                {
                    situacaoDrone.StatusDrone = EnumStatusDrone.Disponivel.ToString();
                }
                else
                {
                    situacaoDrone.StatusDrone = droneItinerario.StatusDrone.ToString();
                }

                var pedidos = await _pedidoService.GetAll();

                situacaoDrone.Pedidos = pedidos.Where(p => p.Drone != null && p.Status != EnumStatusPedido.Entregue && p.Drone.Id == drone.Id).ToList();;

                situacaoDrones.Add(situacaoDrone);
            }

            return(Ok(situacaoDrones));
        }
Esempio n. 2
0
        public async Task <IActionResult> GetDrone()
        {
            await _pedidoService.DespacharPedidos();

            var drones = await _droneService.GetAll();

            var situacaoDrones = new List <SituacaoDroneDTO>();

            var dronesItinerario = _droneItinerarioService.GetAll().Result;

            var pedidosEmTransito = await _pedidoService.GetPedidosEmTransito();

            foreach (var drone in drones)
            {
                var situacaoDrone = new SituacaoDroneDTO {
                    Drone = drone
                };

                var droneItinerario = dronesItinerario.SingleOrDefault(x => x.DroneId == drone.Id);

                if (droneItinerario == null)
                {
                    situacaoDrone.StatusDrone = EnumStatusDrone.Disponivel.ToString();
                }
                else
                {
                    situacaoDrone.StatusDrone = droneItinerario.StatusDrone.ToString();
                }

                situacaoDrone.Pedidos = pedidosEmTransito.Where(p => p.Drone != null && p.Status != EnumStatusPedido.Entregue && p.Drone.Id == drone.Id).ToList();

                situacaoDrones.Add(situacaoDrone);
            }

            return(Ok(situacaoDrones));
        }