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)); }
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)); }