Exemplo n.º 1
0
        public static LieutenantGeneral Create(string[] parts, List <Soldier> soldiers)
        {
            LieutenantGeneral current = new LieutenantGeneral(parts[1], parts[2],
                                                              parts[3], decimal.Parse(parts[4]));

            current.AddPrivates(parts, soldiers);
            return(current);
        }
Exemplo n.º 2
0
        static void Main(string[] args)
        {
            HashSet <Soldier> soldiers = new HashSet <Soldier>();

            string input;

            while ((input = Console.ReadLine()) != "End")
            {
                string[] soldierArguments = input.Split(" ");

                string soldierType = soldierArguments[0];
                string id          = soldierArguments[1];
                string firstName   = soldierArguments[2];
                string lastName    = soldierArguments[3];

                if (soldierType == "Private")
                {
                    decimal salary = decimal.Parse(soldierArguments[4]);

                    Private @private = new Private(id, firstName, lastName, salary);

                    soldiers.Add(@private);
                }
                else if (soldierType == "LieutenantGeneral")
                {
                    decimal       salary = decimal.Parse(soldierArguments[4]);
                    List <string> ids    = soldierArguments.Skip(5).ToList();

                    LieutenantGeneral lieutenantGeneral = new LieutenantGeneral(id, firstName, lastName, salary);

                    List <Private> privates = GetPrivates(ids, soldiers);

                    foreach (var item in privates)
                    {
                        lieutenantGeneral.AddPrivates(item);
                    }

                    soldiers.Add(lieutenantGeneral);
                }
                else if (soldierType == "Engineer")
                {
                    decimal       salary     = decimal.Parse(soldierArguments[4]);
                    string        corps      = soldierArguments[5];
                    List <string> repairsArg = soldierArguments.Skip(6).ToList();

                    HashSet <Repair> repairs = GetRepairs(repairsArg);

                    try
                    {
                        Engineer engineer = new Engineer(id, firstName, lastName, salary, corps, repairs);
                        soldiers.Add(engineer);
                    }
                    catch (Exception)
                    {
                    }
                }
                else if (soldierType == "Commando")
                {
                    decimal       salary      = decimal.Parse(soldierArguments[4]);
                    string        corps       = soldierArguments[5];
                    List <string> missionArgs = soldierArguments.Skip(6).ToList();

                    HashSet <Mission> missions = GetMission(missionArgs);

                    try
                    {
                        Commando commando = new Commando(id, firstName, lastName, salary, corps, missions);
                        soldiers.Add(commando);
                    }
                    catch (Exception)
                    {
                    }
                }
                else if (soldierType == "Spy")
                {
                    int codeNumber = int.Parse(soldierArguments[4]);

                    Spy spy = new Spy(id, firstName, lastName, codeNumber);

                    soldiers.Add(spy);
                }
            }

            foreach (var soldier in soldiers)
            {
                Console.WriteLine(soldier);
            }
        }