Beispiel #1
0
        public string IsPedidoValido(Pedido pedido)
        {
            var drone = _droneRepository.ObterTodos().Result.FirstOrDefault(d => d.Capacidade >= pedido.Peso);

            if (drone == null)
            {
                return("Pedido acima do peso máximo aceito.");
            }

            double distancia = _localizacaoLoja.CalcularDistanciaEmKilometros(new Localizacao((double)pedido.Cliente.Latitude, (double)pedido.Cliente.Longitude));

            distancia *= 2;

            int tempoTrajetoCompleto = _localizacaoLoja.CalcularTempoTrajetoEmMinutos(distancia, drone.Velocidade);

            if (tempoTrajetoCompleto > drone.Autonomia)
            {
                return("Fora da área de entrega.");
            }

            return(String.Empty);
        }