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); }
/// <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); }
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"); } }
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); } } }
public EntregaCommand(IDroneCommand droneCommand, IPedidoCommand pedidoCommand) { _droneCommand = droneCommand; _pedidoCommand = pedidoCommand; }
public PedidoCommand(IDroneCommand droneCommand, IPedidosRepository pedidosRepository, IUsuariosRepository usuariosRepository) { _droneCommand = droneCommand; _pedidosRepository = pedidosRepository; _usuariosRepository = usuariosRepository; }
public void AddCommand(IDroneCommand command) { this._commands.Enqueue(command); }
public DroneController(IDroneCommand droneCommand, IDroneQuery droneQuery) { _droneCommand = droneCommand; _droneQuery = droneQuery; }
public EntregaCommand(IDroneCommand droneCommand) { _droneCommand = droneCommand; }
/// <summary> /// Add a command to the list /// </summary> /// <param name="command"></param> public void AddCommand(IDroneCommand command) { _commands.Enqueue(command); _commandsUndo.Push(command); }