Beispiel #1
0
        public void Run()
        {
            string input;

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

                    string command = commandArgs[0];
                    string name;
                    int    procedureTime;

                    switch (command)
                    {
                    case "RegisterAnimal":
                        string type = commandArgs[1];
                        name = commandArgs[2];
                        int energy    = int.Parse(commandArgs[3]);
                        int happiness = int.Parse(commandArgs[4]);
                        procedureTime = int.Parse(commandArgs[5]);
                        Console.WriteLine(ac.RegisterAnimal(type, name, energy, happiness, procedureTime));
                        break;

                    case "Chip":
                        name          = commandArgs[1];
                        procedureTime = int.Parse(commandArgs[2]);
                        Console.WriteLine(ac.Chip(name, procedureTime));
                        break;

                    case "Vaccinate":
                        name          = commandArgs[1];
                        procedureTime = int.Parse(commandArgs[2]);
                        Console.WriteLine(ac.Vaccinate(name, procedureTime));
                        break;

                    case "Fitness":
                        name          = commandArgs[1];
                        procedureTime = int.Parse(commandArgs[2]);
                        Console.WriteLine(ac.Fitness(name, procedureTime));
                        break;

                    case "Play":
                        name          = commandArgs[1];
                        procedureTime = int.Parse(commandArgs[2]);
                        Console.WriteLine(ac.Play(name, procedureTime));
                        break;

                    case "DentalCare":
                        name          = commandArgs[1];
                        procedureTime = int.Parse(commandArgs[2]);
                        Console.WriteLine(ac.DentalCare(name, procedureTime));
                        break;

                    case "NailTrim":
                        name          = commandArgs[1];
                        procedureTime = int.Parse(commandArgs[2]);
                        Console.WriteLine(ac.NailTrim(name, procedureTime));
                        break;

                    case "Adopt":
                        name = commandArgs[1];
                        string  owner  = commandArgs[2];
                        IAnimal animal = ac.GetAnimal(name);
                        Console.WriteLine(ac.Adopt(name, owner));


                        break;

                    case "History":
                        string procedureType = commandArgs[1];
                        Console.WriteLine(ac.History(procedureType));
                        break;

                    default:
                        break;
                    }
                }
                catch (InvalidOperationException ioe)
                {
                    Console.WriteLine($"InvalidOperationException: {ioe.Message}");
                }
                catch (ArgumentException ae)
                {
                    Console.WriteLine($"ArgumentException: {ae.Message}");
                }
            }

            foreach (var owner in ac.AddoptedPets.OrderBy(o => o.Key))
            {
                Console.WriteLine($"--Owner: {owner.Key}");
                Console.WriteLine($"   - Adopted animals: {string.Join(" ", owner.Value.Select(a => a.Name))}");
            }
        }