public void TryExecuteCommand()
    {
        DraftManager draftManager = new DraftManager();
        string       input        = Console.ReadLine();

        while (true)
        {
            List <string> inputArgs   = input.Split().ToList();
            string        commandName = inputArgs[0];
            List <string> commandArgs = inputArgs.Skip(1).ToList();

            Command cmdToBeExecuted = null;
            string  result          = string.Empty;

            switch (commandName)
            {
            case "RegisterHarvester":
                cmdToBeExecuted = new RegisterHarvesterCommand(draftManager, commandArgs);
                break;

            case "RegisterProvider":
                cmdToBeExecuted = new RegisterProviderCommand(draftManager, commandArgs);
                break;

            case "Day":
                cmdToBeExecuted = new StartDayCommand(draftManager, commandArgs);
                break;

            case "Mode":
                cmdToBeExecuted = new ChangeModeCommand(draftManager, commandArgs);
                break;

            case "Check":
                cmdToBeExecuted = new CheckStatusCommand(draftManager, commandArgs);
                break;

            case "Shutdown":
                cmdToBeExecuted = new ShutdownCommand(draftManager, commandArgs);
                Console.WriteLine(cmdToBeExecuted.Execute());
                return;
            }

            // In case an invalid command is entered:
            if (cmdToBeExecuted == null)
            {
                throw new ArgumentException("Invalid command.");
            }

            result = cmdToBeExecuted.Execute();
            Console.WriteLine(result);

            input = Console.ReadLine();
        }
    }
Beispiel #2
0
        /// <summary>
        /// Method which process input commands
        /// </summary>
        /// <param name="command">inut command</param>
        public void ExecuteCommand(string command)
        {
            CommandInfo commandInfo    = (CommandInfo)this.commandParser.Parse(command);
            Command     currentCommand = null;

            switch (commandInfo.Name)
            {
            case "start":
                currentCommand = new StartCommand(this, this.matrix, this.player, this.director, this.builder, this.printer);
                break;

            case "turn":
                currentCommand = new TurnCommand(this, this.matrix, this.player, this.printer);
                break;

            case "menu":
                MainMenu.PrintMenu(this);
                break;

            case "exit":
                currentCommand = new ExitCommand(this.matrix, this.player, this.printer);
                break;

            case "save":
                currentCommand = new SaveCommand(this.matrix, this.player, this.printer);
                break;

            case "load":
                currentCommand = new LoadCommand(this.matrix, this.player, this.printer);
                break;

            case "mode":
                currentCommand = new ChangeModeCommand(this, this.matrix, this.player, this.printer);
                break;

            case "highscore":
                currentCommand = new HighScoreCommand(this, this.matrix, this.player, this.printer);
                break;

            default:
                currentCommand = new InvalidCommand(this.matrix, this.player, this.printer);
                currentCommand.Execute(commandInfo);
                this.Start();
                return;
            }

            currentCommand.Execute(commandInfo);
            this.printer.PrintMatrix(this.matrix, this.player);
            this.Start();
        }