public async Task <bool> InserirPedido(PedidoParam pedido) { var novoPedido = new PedidoEntity { PesoGramas = pedido.Peso, Latitude = pedido.Latitude, Longitude = pedido.Longitude, DataHora = pedido.DataHora, }; //calculoDistancia var distancia = GeolocalizacaoService.CalcularDistanciaEmKm(pedido.Latitude, pedido.Longitude); if (!novoPedido.ValidaPedido(distancia)) { return(false); } var drone = await _droneService.SelecionarDrone(); if (drone == null) { novoPedido.Status = PedidoStatus.PendenteEntrega; novoPedido.DroneId = null; await _pedidosRepository.Inserir(novoPedido); return(true); } novoPedido.Drone = drone; novoPedido.DroneId = drone.Id; novoPedido.Status = PedidoStatus.EmTransito; await _pedidosRepository.Inserir(novoPedido); await _droneService.AtualizaDrone(drone); return(true); }