public async Task <bool> Insert(Pedido pedido) { var dronesSitema = await _droneRepository.GetAll(); if (!dronesSitema.Any(d => d.Capacidade >= pedido.Peso)) { return(await Task.Run(() => false)); } //Deve colocar a regra de criação de pedido return(await _repositoryPedido.Insert(pedido)); }
public async Task <ActionResult <IEnumerable <SituacaoDroneDTO> > > GetDrone() { var drones = await _droneRepository.GetAll(); IList <SituacaoDroneDTO> situacaoDrones = new List <SituacaoDroneDTO>(); foreach (var drone in drones) { SituacaoDroneDTO situacaoDrone = new SituacaoDroneDTO(); situacaoDrone.Drone = drone; var droneItinerario = _droneItinerarioRepository.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 _pedidoRepository.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 <bool> Insert(Pedido pedido) { var dronesSitema = await _droneRepository.GetAll(); if (!dronesSitema.Any(d => d.Capacidade >= pedido.Peso)) { return(await Task.Run(() => false)); //"Nenhum drone com capacidade ou nenhum drone disponivel" } double distanciaEmKMIdaEVolta = CalcularDistanciaEmKilometros((double)pedido.Latitude, (double)pedido.Longitude); if (!dronesSitema.ToList().Any(d => d.Autonomia >= TempoDoTrajetoEmMinutos(distanciaEmKMIdaEVolta, d.Velocidade))) { return(await Task.Run(() => false)); //"Nenhum drone com autonomia disponivel" } pedido.InformarHoraPedido(DateTime.Now); pedido.InformarPrevisaoEntrega(DateTime.Now); pedido.InformarStatus(EnumStatusPedido.AguardandoEntregador); return(await _repositoryPedido.Insert(pedido)); }
public async Task <bool> Insert(Pedido pedido) { var dronesSitema = await _droneRepository.GetAll(); var claims = _userService.GetClaimsIdentity(); var userAutenticate = claims.Select(c => c.Value).FirstOrDefault(); if (!dronesSitema.Any(d => d.Capacidade >= pedido.Peso)) { return(await Task.Run(() => false)); } if (await _clienteRepository.GetByUserName(userAutenticate) == null) { return(await Task.Run(() => false)); } pedido.Cliente = await _clienteRepository.GetByUserName(userAutenticate); return(await _repositoryPedido.Insert(pedido)); }
public async Task <List <Drone> > BuscarDrone() { var result = await _droneRepository.GetAll(); result.ForEach(drone => { drone.PedidosDrones.ForEach(pedidos => { var pedido = _pedidoRepository.GetPedidoById(pedidos.PedidoId).Result; drone.Pedidos.Add(pedido); }); }); return(result); }
public async Task <List <Drone> > BuscarDrone() { return(await _droneRepository.GetAll()); }
public async Task <IList <Drone> > GetAll() { return(await _droneRepository.GetAll()); }
public void TestaRetornoDeTodosDrone() { var droneResult = _droneRepository.GetAll().Result; Assert.NotNull(droneResult); }
public ICollection <Drone> GetDetachedDrones() { return(_droneRepository.GetAll(x => string.IsNullOrEmpty(x.OwnerId))); }