Esempio n. 1
0
        public Animal CreateAnimal()
        {
            Animal animal;

            Logger.LogMessage("Enter animal name:");
            var name = Reader.ReadLine();

            try
            {
                Logger.LogMessage("Choose a race:\n" +
                                  "1 - Penguin;\n" +
                                  "2 - Utkonos;\n" +
                                  "3 - Juravl;\n" +
                                  "4 - Ravlick.");

                var choiceRace = Reader.ReadLine();
                var type       = (AnimalType)int.Parse(choiceRace);

                switch (type)
                {
                case AnimalType.Penguin:
                    animal = new Penguin(name);
                    Zoo.AddNewAnimal(animal);
                    break;

                case AnimalType.Utkonos:
                    animal = new Utkonos(name);
                    Zoo.AddNewAnimal(animal);
                    break;

                case AnimalType.Juravl:
                    animal = new Juravl(name);
                    Zoo.AddNewAnimal(animal);
                    break;

                case AnimalType.Ravlick:
                    animal = new Ravlick(name);
                    Zoo.AddNewAnimal(animal);
                    break;

                default:
                    throw new Exception("Выберите, блять, из доступных.");
                }
                Logger.LogMessage($"{animal.GetType().Name} {name} добавлен в зоопарк.");

                animal.OnMessage      += DoOnMessage;
                animal.OnCreate       += AnimalOnOnCreate;
                animal.OnStatusChange += AnimalOnOnStatusChange;
                animal.OnStatusChange += AnimalCheckIsDead;

                animal.Create();
                return(animal);
            }
            catch (ArgumentOutOfRangeException)
            {
                Logger.LogError("Че, самый умный, блять? выбери из списка доступных рас, пидор.");
                Logger.LogMessage($"Или твой {name} будет НИКЕМ.");
            }
            catch (Exception e)
            {
                Logger.LogError("Ошибка при попытке создать животное.", e);
            }

            return(animal = null);
        }
Esempio n. 2
0
 public ZooController(Zoo zoo, ILogger logger, IDataReader reader)
 {
     Reader = reader;
     Logger = logger;
     Zoo    = zoo;
 }