Пример #1
0
 private bool TemPedido(ConsultaDronePedidoDTO listPedidosDrone)
 {
     if (listPedidosDrone.Pedidos == null || listPedidosDrone.Pedidos.Count().Equals(0)) //Se o drone não tem pedidos relacionados, então já pego ele e saio do foreach
     {
         return(false);
     }
     return(true);
 }
Пример #2
0
        private bool SuportaPeso(ConsultaDronePedidoDTO listDronePedidos, DroneEntity drone, PedidoEntity pedidoNovo)
        {
            bool suporta = false;

            var pesoDeTodosPedidos = listDronePedidos != null && listDronePedidos.Pedidos != null && listDronePedidos.Pedidos.Count > 0 ? (listDronePedidos.Pedidos.Sum(s => s.Peso) + pedidoNovo.Peso) : pedidoNovo.Peso;

            if (pesoDeTodosPedidos <= drone.Capacidade)
            {
                suporta = true;
            }

            return(suporta);
        }
Пример #3
0
        private bool TemAutonomiaSuficiente(ConsultaDronePedidoDTO listDronePedidos, DroneEntity drone, PedidoEntity pedidoNovo)
        {
            bool temAuto = false;

            var distanciaDeTodosPedidosEmMetros = listDronePedidos != null && listDronePedidos.Pedidos != null && listDronePedidos.Pedidos.Count > 0 ? (listDronePedidos.Pedidos.Sum(s => s.DistanciaDaEntrega) + pedidoNovo.DistanciaDaEntrega) : pedidoNovo.DistanciaDaEntrega;
            var distanciaDeTodosPedidosKM       = distanciaDeTodosPedidosEmMetros / 1000;

            var tempoTotalDeViagemParaTodosPedidosEmMinutos = (distanciaDeTodosPedidosKM * 60) / drone.Velocidade; //Multiplicando o KM por 60 minutos para representar Km/h e depois divido pela velocidade máxima do drone

            if ((tempoTotalDeViagemParaTodosPedidosEmMinutos * 2) <= drone.Autonomia)                              // Multiplico por 2 porque tem a ida e a volta, assim saberei o tempo total gasto em Minutos para entregar os pedidos
            {
                temAuto = true;
            }

            return(temAuto);
        }