Esempio n. 1
0
 public PedidoCommand(IDroneCommand droneCommand, IPedidosRepository pedidosRepository, IUsuariosRepository usuariosRepository, IPagamentoExternalContext pagamentoExternalContext)
 {
     _droneCommand             = droneCommand;
     _pedidosRepository        = pedidosRepository;
     _usuariosRepository       = usuariosRepository;
     _pagamentoExternalContext = pagamentoExternalContext;
 }
        /// <summary>
        ///     Adds a drone command to the lastly added drone. This command will only be executed when a call to Resolve is made.
        /// </summary>
        /// <param name="command">The command.</param>
        /// <exception cref="System.InvalidOperationException">No drones have been added yet.</exception>
        public void AddDroneCommand(IDroneCommand command)
        {
            var lastDroneAndCommands = _dronesAndCommands.LastOrDefault();

            if (lastDroneAndCommands == null)
            {
                throw new InvalidOperationException("No drones have been added yet.");
            }

            lastDroneAndCommands.Item2.Enqueue(command);
        }
Esempio n. 3
0
        /// <summary>
        /// Makes from a string and value a command
        /// </summary>
        /// <param name="command"></param>
        /// <param name="value"></param>
        /// <returns>Command</returns>
        public IDroneCommand makeCommand(string command, double value = 0)
        {
            IDroneCommand droneCommand = null;

            if (command.Equals("Start"))
            {
                droneCommand = new StartCommand(_droneController);
            }
            else if (command.Equals("Land"))
            {
                droneCommand = new LandCommand(_droneController);
            }
            else if (command.Equals("Rise"))
            {
                droneCommand = new RiseCommand(_droneController, value);
            }
            else if (command.Equals("Fall"))
            {
                droneCommand = new FallCommand(_droneController, value);
            }
            else if (command.Equals("Right"))
            {
                droneCommand = new RightCommand(_droneController, value);
            }
            else if (command.Equals("Left"))
            {
                droneCommand = new LeftCommand(_droneController, value);
            }
            else if (command.Equals("Forward"))
            {
                droneCommand = new ForwardCommand(_droneController, value);
            }
            else if (command.Equals("Backward"))
            {
                droneCommand = new BackwardCommand(_droneController, value);
            }
            else if (command.Equals("Turn"))
            {
                droneCommand = new TurnCommand(_droneController, (int)value);
            }
            else if (command.Equals("TakePicture"))
            {
                droneCommand = new TakePictureCommand(_droneController, (int)value);
            }
            else if (command.Equals("FollowLine"))
            {
                droneCommand = new FollowLineCommand(_droneController);
            }

            return(droneCommand);
        }
Esempio n. 4
0
        public void Update(IDroneCommand command)
        {
            var droneMove = command.GetMove();

            if (!droneMove.IsValid())
            {
                throw new Exception("Move overflow.");
            }

            X += droneMove.X;
            Y += droneMove.Y;

            if (!IsValid())
            {
                throw new Exception("Position Overflow");
            }
        }
Esempio n. 5
0
 public async void asyncExecute()
 {
     while (true)
     {
         if (_droneProcessor.DroneIsBusy() == false)
         {
             if (this._commands.Count > 0)
             {
                 IDroneCommand nextCommand = _commands.Dequeue();
                 nextCommand.Execute();
             }
             else
             {
                 break;
             }
         }
         else
         {
             await Task.Delay(25);
         }
     }
 }
Esempio n. 6
0
 public EntregaCommand(IDroneCommand droneCommand, IPedidoCommand pedidoCommand)
 {
     _droneCommand  = droneCommand;
     _pedidoCommand = pedidoCommand;
 }
 public PedidoCommand(IDroneCommand droneCommand, IPedidosRepository pedidosRepository, IUsuariosRepository usuariosRepository)
 {
     _droneCommand       = droneCommand;
     _pedidosRepository  = pedidosRepository;
     _usuariosRepository = usuariosRepository;
 }
Esempio n. 8
0
 public void AddCommand(IDroneCommand command)
 {
     this._commands.Enqueue(command);
 }
Esempio n. 9
0
 public DroneController(IDroneCommand droneCommand, IDroneQuery droneQuery)
 {
     _droneCommand = droneCommand;
     _droneQuery   = droneQuery;
 }
Esempio n. 10
0
 public EntregaCommand(IDroneCommand droneCommand)
 {
     _droneCommand = droneCommand;
 }
Esempio n. 11
0
 /// <summary>
 /// Add a command to the list
 /// </summary>
 /// <param name="command"></param>
 public void AddCommand(IDroneCommand command)
 {
     _commands.Enqueue(command);
     _commandsUndo.Push(command);
 }