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); }
public ZooController(Zoo zoo, ILogger logger, IDataReader reader) { Reader = reader; Logger = logger; Zoo = zoo; }