public async Task <ActionResult <Drone> > GetDrone(Guid id)
        {
            var drone = await _droneQueries.ObterDrone(id);

            if (drone == null)
            {
                return(NotFound());
            }

            return(Ok(drone));
        }
示例#2
0
        public async Task <bool> Handle(EntregarPedidoCommand message, CancellationToken cancellationToken)
        {
            if (!ValidarComando(message))
            {
                return(false);
            }

            var drone = await _droneQueries.ObterDrone(message.DroneId);

            var pedido = await _pedidoQueries.ObterPedido(message.PedidoId);

            var pedidoAlterado = new Pedido()
            {
                Peso      = pedido.Peso,
                Latitude  = pedido.Latitude,
                Longitude = pedido.Longitude,
                Id        = pedido.Id
            };
            var entrega = new Entrega()
            {
                DataPrevisao = message.DataPrevisao,
                DroneId      = message.DroneId,
                PedidoId     = message.PedidoId
            };

            var itinerario = new DroneItinerario()
            {
                DroneId     = drone.Id,
                StatusDrone = EStatusDrone.EmTransito,
                DataHora    = DateTime.Now
            };

            await _itinerarioRepository.InsertAsync(itinerario);

            await _itinerarioRepository.UnitOfWork.Commit();

            await _entregaRepository.InsertAsync(entrega);

            await _entregaRepository.UnitOfWork.Commit();

            pedidoAlterado.Entrega = entrega;
            await _pedidoRepository.UpdateAsync(pedidoAlterado);

            await _pedidoRepository.UnitOfWork.Commit();

            return(true);
        }