/// <summary> /// Processes command in the command line control. /// </summary> public void ProcessCommand() { this.commandHistory.Add(this.commandLineTextBox.Text); IEnumerable <string> commands = CommunicationHelper.ParseRoboScript(this.commandLineTextBox.Text); var notSentCommands = new List <string>(); foreach (string command in commands) { // Пустышки в сторону! if (command.Trim().Equals(string.Empty)) { continue; } // Если есть ошибка, то все последующие команды не посылаются роботу. if (notSentCommands.Count > 0) { notSentCommands.Add(command); } else { bool sendResult = this.SendMessageToRobot(false, command); if (sendResult) { this.historyBox.AppendTextSentToRobot(this.communicationHelper.LastSentMessage); } else { this.historyBox.AppendTextSentToRobot(string.Format("Ошибка в {0}: {1}", command, this.communicationHelper.LastErrorMessage)); notSentCommands.Add(command); } } } // В поле ввода команд оставляем только неотправленные команды. if (notSentCommands.Count > 0) { this.commandLineTextBox.Text = GenerateCommandLine(notSentCommands); } else { this.commandLineTextBox.Text = string.Empty; } }