public async Task EnviarPedidos() { try { List <Pedido> listaPedidos = await _pedidoRepository.ListarPedidos(); List <Drone> drones = await _droneRepository.GetDisponiveis(); foreach (Drone drone in drones) { double droneAutonomia = drone.Autonomia; int droneCapacidade = drone.Capacidade; foreach (Pedido pedido in listaPedidos) { if (droneAutonomia >= pedido.DistanciaParaDestino && droneCapacidade >= pedido.Peso) { drone.StatusDrone = StatusDrone.emTrajeto; pedido.StatusPedido = StatusPedido.despachado; await _pedidoRepository.AddPedidoDrone(new PedidoDrone { Drone = drone, Pedido = pedido }); await _pedidoRepository.UpdatePedido(pedido); await _droneRepository.UpdateDrone(drone); droneAutonomia -= pedido.DistanciaParaDestino; droneCapacidade -= pedido.Peso; } } } } catch (Exception ex) { throw ex; } }