Exemplo n.º 1
0
    private static void ExecuteCommand(string[] command)
    {
        var    id        = command[1];
        var    firstName = command[2];
        var    lastName  = command[3];
        double salary;
        string corps;
        string cmdResult;

        try
        {
            switch (command[0])
            {
            case "Private":     // “Private <id> <firstName> <lastName> <salary>”
                salary    = double.Parse(command[4]);
                cmdResult = manager.RegisterPrivate(id, firstName, lastName, salary);
                stat.AppendLine(cmdResult);
                break;

            case "LeutenantGeneral":     // “LeutenantGeneral <id> <firstName> <lastName> <salary> <private1Id> <private2Id> … <privateNId>”
                salary    = double.Parse(command[4]);
                cmdResult = manager.RegisterLeutenantGeneral(id, firstName, lastName, salary, command.Skip(5));
                stat.AppendLine(cmdResult);
                break;

            case "Engineer":     // “Engineer <id> <firstName> <lastName> <salary> <corps> <repair1Part> <repair1Hours> … <repairNPart> <repairNHours>”
                salary    = double.Parse(command[4]);
                corps     = command[5];
                cmdResult = manager.RegisterEngineer(id, firstName, lastName, salary, corps, command.Skip(6).ToArray());
                stat.AppendLine(cmdResult);
                break;

            case "Commando":     // “Commando <id> <firstName> <lastName> <salary> <corps> <mission1CodeName>  <mission1state> … <missionNCodeName> <missionNstate>”
                salary    = double.Parse(command[4]);
                corps     = command[5];
                cmdResult = manager.RegisterCommando(id, firstName, lastName, salary, corps, command.Skip(6).ToArray());
                stat.AppendLine(cmdResult);
                break;

            case "Spy":     // “Spy <id> <firstName> <lastName> <codeNumber>”
                var codeNumber = int.Parse(command[4]);
                cmdResult = manager.RegisterSpy(id, firstName, lastName, codeNumber);
                stat.AppendLine(cmdResult);
                break;

            default:
                break;
            }
        }
        catch (ArgumentException)
        {
            return;
        }
    }