Esempio n. 1
0
        static void Main(string[] args)
        {
            var elephant = new Elephant();
            var bird     = new Bird();

            var employee = new ZooEmployee(23, "Petro");
            var visitor  = new Visitor(15, "Ivan");

            employee.GoToTheZoo();
            visitor.GoToTheZoo();

            var plant          = new Plant();
            var birdAviary     = new Aviary();
            var elephantAviary = new Aviary();

            birdAviary.PlacePlant(plant);
            birdAviary.PlaxeAnimal(bird);
            elephantAviary.PlaxeAnimal(elephant);

            Console.WriteLine(birdAviary.GetStatus());

            employee.FeedAnimal(elephant);
            employee.FeedAnimal(bird);

            visitor.Observe(elephant);
            visitor.Observe(bird);
        }
Esempio n. 2
0
 public AviaryDTO ToAviaryDTO(Aviary aviary)
 {
     try
     {
         if (aviary == null || !(aviary is GlassAviary))
         {
             throw new ArgumentException("Пустой объект (вольер) или не подходящего типа!!!");
         }
         var aviaryDTO = new GlassAviaryDTO();
         aviaryDTO.Kind     = (aviary as GlassAviary).Kind;
         aviaryDTO.Status   = aviary.Status;
         aviaryDTO.Volume   = (aviary as GlassAviary).Volume;
         aviaryDTO.Capacity = aviary.Capacity;
         var converter = new AnimalConverter();
         foreach (var inhabitant in aviary.GetListOfInhabitants())
         {
             aviaryDTO.Inhabitants.Add(converter.ToAnimalDTO(inhabitant));
         }
         return(aviaryDTO);
     }
     catch (ArgumentException)
     {
         throw;
     }
 }
Esempio n. 3
0
        static void Main(string[] args)
        {
            var elephant = new Elephant();
            var bird     = new Bird();

            var employee = new Employee(23, "Tom");
            var visitor  = new Visitor(15, "Bill");

            employee.GoToTheZoo();
            visitor.GoToTheZoo();

            var herb           = new Herb();
            var birdAviary     = new Aviary();
            var elephantAviery = new Aviary();

            birdAviary.PlaceHerb(herb);
            birdAviary.PlaceAnimal(bird);
            elephantAviery.PlaceAnimal(elephant);

            Console.WriteLine(birdAviary.GetStatus());

            employee.FeedAnimal(elephant);
            employee.FeedAnimal(bird);

            visitor.Observe(elephant);
            visitor.Observe(bird);
        }
Esempio n. 4
0
 public bool TransferAnimal(Animal animal, Aviary receiver)
 {
     try
     {
         if (animal == null || receiver == null)
         {
             throw new ArgumentException("Пустая ссылка на животное и/или вольер!!!");
         }
         var sender = _aviaries.FirstOrDefault(aviary => aviary.GetListOfInhabitants().Contains(animal));
         if (sender == null)
         {
             throw new ArgumentException("Животное в зоопарке отсутствует!!!");
         }
         if (FindAviary(receiver.Number) == null)
         {
             throw new ArgumentException("Вольер назначения в зоопарке отсутствует!!!");
         }
         if (receiver.Status != AviaryStatus.Closed &&
             receiver.FreePlaces > 0 &&
             receiver.IsCorrectForSettlement(animal))
         {
             sender.EvictAnimal(animal);
             if (receiver.SettleAnimal(animal))
             {
                 return(true);
             }
             sender.SettleAnimal(animal);
         }
         return(false);
     }
     catch (ArgumentException)
     {
         throw;
     }
 }
Esempio n. 5
0
 public Aviary Update(Aviary aviary)
 {
     dbContext.Aviaries.Attach(aviary);
     dbContext.Aviaries.Update(aviary);
     if (aviary.AviaryKinds != null)
     {
         dbContext.AviaryKinds.UpdateRange(aviary.AviaryKinds);
     }
     dbContext.SaveChanges();
     return(aviary);
 }
Esempio n. 6
0
        private void InitRoot()
        {
            root = new HabitationsGroup();

            Pasture pasture = new Pasture(CommonTestData.bowtruckle);
            Room    room    = new Room(CommonTestData.demiguise);
            Aviary  aviary  = new Aviary(CommonTestData.occamy);

            root.AddContainer(pasture);
            root.AddContainer(room);
            root.AddContainer(aviary);
        }
Esempio n. 7
0
 public void AddAviary(Aviary aviary)
 {
     try
     {
         if (aviary == null)
         {
             throw new ArgumentException("Пустая ссылка на вольер!!!");
         }
         _aviaries.Add(aviary);
     }
     catch (ArgumentException)
     {
         throw;
     }
 }
Esempio n. 8
0
        public Aviary ToAviary(AviaryDTO aviaryDTO)
        {
            try
            {
                if (aviaryDTO == null)
                {
                    throw new ArgumentException("Пустой DTO объект (вольер)!!!");
                }
                Aviary           aviary = null;
                IAviaryConverter converter;
                switch (aviaryDTO.GetType().Name.ToString())
                {
                case "AquariumDTO":
                    converter = new AquariumConverter();
                    aviary    = converter.ToAviary(aviaryDTO);
                    break;

                case "CageDTO":
                    converter = new CageConverter();
                    aviary    = converter.ToAviary(aviaryDTO);
                    break;

                case "GlassAviaryDTO":
                    converter = new GlassAviaryConverter();
                    aviary    = converter.ToAviary(aviaryDTO);
                    break;

                case "PoolDTO":
                    converter = new PoolConverter();
                    aviary    = converter.ToAviary(aviaryDTO);
                    break;

                case "YardDTO":
                    converter = new YardConverter();
                    aviary    = converter.ToAviary(aviaryDTO);
                    break;
                }
                return(aviary);
            }
            catch (ArgumentException)
            {
                throw;
            }
        }
Esempio n. 9
0
 public bool SettleAnimal(Animal animal, Aviary aviary)
 {
     try
     {
         if (animal == null || aviary == null)
         {
             throw new ArgumentException("Пустая ссылка на животное и/или вольер!!!");
         }
         if (FindAviary(aviary.Number) == null)
         {
             throw new ArgumentException("Вольер назначения в зоопарке отсутствует!!!");
         }
         return(aviary.SettleAnimal(animal));
     }
     catch (ArgumentException)
     {
         throw;
     }
 }
Esempio n. 10
0
 public void SetSelectedItem(object item)
 {
     _selected   = (Aviary)item;
     animals     = new ObservableCollection <Animal>(_selected.Animals);
     inventories = new ObservableCollection <Inventory>(_selected.Inventories);
 }
Esempio n. 11
0
 public void ResetSelected()
 {
     _selected   = null;
     animals     = null;
     inventories = null;
 }
Esempio n. 12
0
 public AviaryListElement(Aviary aviary)
 {
     _aviary = aviary;
 }
Esempio n. 13
0
        //---------Вольеры
        public void AddAviary(object zoo, object type, object kind, double size, byte capacity)
        {
            Aviary aviary = null;

            switch ((type as AviaryTypeListElement).Type)
            {
            case AviaryType.Cage:
                if (size > 0 && capacity > 0)
                {
                    aviary = new Cage((CageType)kind, size, capacity);
                }
                else
                {
                    aviary = new Cage((CageType)kind);
                }
                break;

            case AviaryType.Yard:
                if (size > 0 && capacity > 0)
                {
                    aviary = new Yard((YardType)kind, size, capacity);
                }
                else
                {
                    aviary = new Yard((YardType)kind);
                }
                break;

            case AviaryType.Pool:
                if (size > 0 && capacity > 0)
                {
                    aviary = new Pool((PoolType)kind, size, capacity);
                }
                else
                {
                    aviary = new Pool((PoolType)kind);
                }
                break;

            case AviaryType.GlassAviary:
                if (size > 0 && capacity > 0)
                {
                    aviary = new GlassAviary((GlassAviaryType)kind, size, capacity);
                }
                else
                {
                    aviary = new GlassAviary((GlassAviaryType)kind);
                }
                break;

            case AviaryType.Aquarium:
                if (size > 0 && capacity > 0)
                {
                    aviary = new Aquarium((AquariumType)kind, size, capacity);
                }
                else
                {
                    aviary = new Aquarium((AquariumType)kind);
                }
                break;
            }
            (zoo as ZooListElement).Zoo.AddAviary(aviary);
        }
Esempio n. 14
0
 public void CleanAvary(Aviary aviary)
 {
 }
Esempio n. 15
0
        private void SettleAnimal()
        {
            Console.Clear();
            Console.WriteLine("Выберите класс добавляемого животного");
            Console.WriteLine("------------------------------------------------");
            Console.WriteLine("1. {0} (Млекопитающие) - (по умолчанию)", AnimalClass.Mammal.ToString());
            Console.WriteLine("2. {0} (Птицы)", AnimalClass.Bird.ToString());
            Console.WriteLine("3. {0} (Рептилии)", AnimalClass.Reptile.ToString());
            Console.WriteLine("4. {0} (Земноводные)", AnimalClass.Amphibian.ToString());
            Console.WriteLine("5. {0} (Рыбы)", AnimalClass.Fish.ToString());
            Console.WriteLine("------------------------------------------------");
            Console.Write("Ваш выбор:");
            Animal animal;

            switch (Console.ReadLine())
            {
            case "1":
            default:
                animal = CreateMammal();
                break;

            case "2":
                animal = CreateBird();
                break;

            case "3":
                animal = CreateReptile();
                break;

            case "4":
                animal = CreateAmphibian();
                break;

            case "5":
                animal = CreateFish();
                break;
            }
            Console.WriteLine("------------------------------------------------");
            Console.WriteLine("Создано новое животное");
            Console.WriteLine("------------------------------------------------");
            Console.WriteLine(animal.ToString());
            Console.WriteLine("------------------------------------------------");
            Aviary targetAviary = null;

            foreach (var aviary in _zoo.GetListOfAviaries())
            {
                if (_zoo.SettleAnimal(animal, aviary))
                {
                    targetAviary = aviary;
                    break;
                }
            }
            if (targetAviary != null)
            {
                Console.WriteLine("Новое животное помещено в вольер номер {0}", targetAviary.Number);
            }
            else
            {
                Console.WriteLine("Подходящий свободный вольер не найден.");
            }
            Console.WriteLine("------------------------------------------------");
            Console.WriteLine("Нажмите любую клавишу для возврата в меню...");
            Console.ReadKey();
        }
Esempio n. 16
0
        static void Main(string[] args)
        {
            Console.WriteLine("Ви зайшли в програму по управлiнню зоопарком. Можете тут нагодувати тварин, які голодні");
            Console.WriteLine("Котра зараз година?");
            DateTimeOffset time      = DateTimeOffset.Now;
            DateTimeOffset timeutc   = DateTimeOffset.UtcNow;
            int            hourUtc   = time.Hour - timeutc.Hour;
            int            minuteUtc = time.Minute - timeutc.Minute;

            Console.WriteLine(time.Hour + ":" + time.Minute + ", UTC : " + 2 + ":" + minuteUtc);

            Aviary aviaryNumber1 = new Aviary(1, ListOfAnimals.Jaguars);

            Base.Aviaries.Add(aviaryNumber1.Id, aviaryNumber1);
            Aviary aviaryNumber2 = new Aviary(2, ListOfAnimals.Tigers);

            Base.Aviaries.Add(aviaryNumber2.Id, aviaryNumber2);


            Food meat = new Food("М'ясо", 39, ListOfAnimals.Jaguars);

            Base.Foods.Add(meat);


            Ration forTigers = new Ration(meat, ListOfAnimals.Tigers);

            Base.Rations.Add(forTigers.Id, forTigers);
            Ration forJaguars = new Ration(meat, ListOfAnimals.Jaguars);

            Base.Rations.Add(forJaguars.Id, forJaguars);


            //І'мя, cкільки років, який вольєр, який тип тварин, коли їсть вранці, коли їсть вечером, тип живлення, що саме, чи голодна
            Animal animalZebra = new Animal(Guid.NewGuid(),
                                            "Майя",
                                            new DateTimeOffset(2000, 11, 4, 11, 02, 55, new TimeSpan(hourUtc, minuteUtc, 0)),
                                            (int)((time - new DateTimeOffset(2000, 11, 4, 11, 02, 55, new TimeSpan(hourUtc, minuteUtc, 0))).TotalDays / 365),
                                            TypeOfAnimals.Mammals,
                                            TypeOfAnimalsOnTutrion.Herbivores,
                                            ListOfAnimals.Tigers);

            Base.Animals.Add(animalZebra.Id, animalZebra);

            Animal animalSinica = new Animal(Guid.NewGuid(),
                                             "Рябуха",
                                             new DateTimeOffset(2010, 11, 4, 11, 02, 55, new TimeSpan(hourUtc, minuteUtc, 0)),
                                             (int)((time - new DateTimeOffset(2010, 11, 4, 11, 02, 55, new TimeSpan(hourUtc, minuteUtc, 0))).TotalDays / 365),
                                             TypeOfAnimals.Mammals,
                                             TypeOfAnimalsOnTutrion.Omnivorous,
                                             ListOfAnimals.Jaguars
                                             );

            Base.Animals.Add(animalSinica.Id, animalSinica);

            Animal animalDog = new Animal(Guid.NewGuid(),
                                          "Жук",
                                          new DateTimeOffset(2005, 11, 4, 11, 02, 55, new TimeSpan(hourUtc, minuteUtc, 0)),
                                          (int)((time - new DateTimeOffset(2005, 11, 4, 11, 02, 55, new TimeSpan(hourUtc, minuteUtc, 0))).TotalDays / 356),
                                          TypeOfAnimals.Mammals,
                                          TypeOfAnimalsOnTutrion.MeatEaters,
                                          ListOfAnimals.Jaguars);

            Base.Animals.Add(animalDog.Id, animalDog);

            //CheckedType.CheckedTypeOfAnimals();
            foreach (KeyValuePair <Guid, Aviary> keyValue in Base.Aviaries)
            {
                foreach (Animal animal in keyValue.Value.Animals)
                {
                    TypeOfAnimals animal2;
                    int           number = 0;
                    number++;

                    if (number != keyValue.Value.Animals.Count)
                    {
                        animal2 = keyValue.Value.Animals.ElementAt(number).TypeOfAnimals;

                        if (animal2 != animal.TypeOfAnimals)
                        {
                            Console.WriteLine("У вас в одному вольєрі живуть різні типи тварин, перевірте у своїх вольєрах тварин!");
                        }
                    }
                }
            }

            // ChangeHungry.ChangeHungryOfAnimal();

            foreach (KeyValuePair <Guid, Animal> keyValue in Base.Animals)
            {
                Animal animal = keyValue.Value;
                // Console.WriteLine(keyValue.Value.Name);



                switch (keyValue.Value.ListAnimals)
                {
                case ListOfAnimals.Tigers:
                {
                    switch (keyValue.Value.Age)
                    {
                    case int n when(keyValue.Value.Age <= 2):
                    {
                        foreach (Ration ration in Base.Rations.Values)
                        {
                            if (animal.ListAnimals == ration.ListAnimals)
                            {
                                int weight = ration.WeightPortion;
                                weight = 1;
                                ration.Weight(weight);
                                int coef = ration.Coefficient;
                                coef = 1;
                                ration.Coef(coef);
                                DateTimeOffset time1 = new DateTimeOffset(time.Year, time.Month, time.Day, 7, 0, 00, new TimeSpan(2, 0, 0));
                                DateTimeOffset time2 = new DateTimeOffset(time.Year, time.Month, time.Day, 11, 0, 00, new TimeSpan(2, 0, 0));
                                DateTimeOffset time3 = new DateTimeOffset(time.Year, time.Month, time.Day, 15, 0, 00, new TimeSpan(2, 0, 0));
                                DateTimeOffset time4 = new DateTimeOffset(time.Year, time.Month, time.Day, 16, 0, 00, new TimeSpan(2, 0, 0));
                                DateTimeOffset time5 = new DateTimeOffset(time.Year, time.Month, time.Day, 21, 0, 00, new TimeSpan(2, 0, 0));
                                ration.Eating.Add(time1);
                                ration.Eating.Add(time2);
                                ration.Eating.Add(time3);
                                ration.Eating.Add(time4);
                                ration.Eating.Add(time5);
                                foreach (DateTimeOffset t in ration.Eating)
                                {
                                    if (time.Hour > t.Hour + weight * coef)
                                    {
                                        animal.ChangeHungry(true);
                                    }
                                    else
                                    {
                                        animal.ChangeHungry(false);
                                    }
                                }
                            }
                        }
                        break;
                    }

                    case int n when(keyValue.Value.Age <= 10):
                    {
                        foreach (Ration ration in Base.Rations.Values)
                        {
                            if (animal.ListAnimals == ration.ListAnimals)
                            {
                                int weight = ration.WeightPortion;
                                weight = 6;
                                ration.Weight(weight);
                                int coef = ration.Coefficient;
                                coef = 3;
                                ration.Coef(coef);
                                DateTimeOffset time1 = new DateTimeOffset(time.Year, time.Month, time.Day, 7, 0, 00, new TimeSpan(2, 0, 0));
                                DateTimeOffset time2 = new DateTimeOffset(time.Year, time.Month, time.Day, 17, 0, 00, new TimeSpan(2, 0, 0));
                                ration.Eating.Add(time1);
                                ration.Eating.Add(time2);
                                foreach (DateTimeOffset t in ration.Eating)
                                {
                                    if (time.Hour > t.Hour + weight * coef)
                                    {
                                        animal.ChangeHungry(true);
                                    }
                                    else
                                    {
                                        animal.ChangeHungry(false);
                                    }
                                }
                            }
                        }
                        break;
                    }

                    case int n when(keyValue.Value.Age <= 10):
                    {
                        foreach (Ration ration in Base.Rations.Values)
                        {
                            if (animal.ListAnimals == ration.ListAnimals)
                            {
                                int weight = ration.WeightPortion;
                                weight = 6;
                                ration.Weight(weight);
                                int coef = ration.Coefficient;
                                coef = 3;
                                ration.Coef(coef);
                                DateTimeOffset time1 = new DateTimeOffset(time.Year, time.Month, time.Day, 7, 0, 00, new TimeSpan(2, 0, 0));
                                DateTimeOffset time2 = new DateTimeOffset(time.Year, time.Month, time.Day, 17, 0, 00, new TimeSpan(2, 0, 0));
                                ration.Eating.Add(time1);
                                ration.Eating.Add(time2);
                                foreach (DateTimeOffset t in ration.Eating)
                                {
                                    if (time.Hour > t.Hour + weight * coef)
                                    {
                                        animal.ChangeHungry(true);
                                    }
                                    else
                                    {
                                        animal.ChangeHungry(false);
                                    }
                                }
                            }
                        }
                        break;
                    }

                    case int n when(keyValue.Value.Age > 10):
                    {
                        foreach (Ration ration in Base.Rations.Values)
                        {
                            if (animal.ListAnimals == ration.ListAnimals)
                            {
                                int weight = ration.WeightPortion;
                                weight = 2;
                                ration.Weight(weight);
                                int coef = ration.Coefficient;
                                coef = 3;
                                ration.Coef(coef);
                                DateTimeOffset time1 = new DateTimeOffset(time.Year, time.Month, time.Day, 7, 0, 00, new TimeSpan(2, 0, 0));
                                DateTimeOffset time2 = new DateTimeOffset(time.Year, time.Month, time.Day, 18, 0, 00, new TimeSpan(2, 0, 0));
                                ration.Eating.Add(time1);
                                ration.Eating.Add(time2);
                                foreach (DateTimeOffset t in ration.Eating)
                                {
                                    if (time.Hour > t.Hour + weight * coef)
                                    {
                                        animal.ChangeHungry(true);
                                    }
                                    else
                                    {
                                        animal.ChangeHungry(false);
                                    }
                                }
                            }
                        }
                        break;
                    }
                    }

                    break;
                }

                case ListOfAnimals.Jaguars:
                {
                    switch (keyValue.Value.Age)
                    {
                    case int n when(keyValue.Value.Age <= 1):
                    {
                        foreach (Ration ration in Base.Rations.Values)
                        {
                            if (animal.ListAnimals == ration.ListAnimals)
                            {
                                int weight = ration.WeightPortion;
                                weight = 1;
                                ration.Weight(weight);
                                int coef = ration.Coefficient;
                                coef = 3;
                                ration.Coef(coef);
                                DateTimeOffset time1 = new DateTimeOffset(time.Year, time.Month, time.Day, 7, 0, 00, new TimeSpan(2, 0, 0));
                                DateTimeOffset time2 = new DateTimeOffset(time.Year, time.Month, time.Day, 11, 0, 00, new TimeSpan(2, 0, 0));
                                DateTimeOffset time3 = new DateTimeOffset(time.Year, time.Month, time.Day, 15, 0, 00, new TimeSpan(2, 0, 0));
                                DateTimeOffset time4 = new DateTimeOffset(time.Year, time.Month, time.Day, 16, 0, 00, new TimeSpan(2, 0, 0));
                                DateTimeOffset time5 = new DateTimeOffset(time.Year, time.Month, time.Day, 21, 0, 00, new TimeSpan(2, 0, 0));
                                ration.Eating.Add(time1);
                                ration.Eating.Add(time2);
                                ration.Eating.Add(time3);
                                ration.Eating.Add(time4);
                                ration.Eating.Add(time5);
                                foreach (DateTimeOffset t in ration.Eating)
                                {
                                    if (time.Hour > t.Hour + weight * coef)
                                    {
                                        animal.ChangeHungry(true);
                                    }
                                    else
                                    {
                                        animal.ChangeHungry(false);
                                    }
                                }
                            }
                        }
                        break;
                    }

                    case int n when(keyValue.Value.Age <= 5):
                    {
                        foreach (Ration ration in Base.Rations.Values)
                        {
                            if (animal.ListAnimals == ration.ListAnimals)
                            {
                                int weight = ration.WeightPortion;
                                weight = 1;
                                ration.Weight(weight);
                                int coef = ration.Coefficient;
                                coef = 2;
                                ration.Coef(coef);
                                DateTimeOffset time1 = new DateTimeOffset(time.Year, time.Month, time.Day, 7, 0, 00, new TimeSpan(2, 0, 0));
                                DateTimeOffset time2 = new DateTimeOffset(time.Year, time.Month, time.Day, 10, 0, 00, new TimeSpan(2, 0, 0));
                                DateTimeOffset time3 = new DateTimeOffset(time.Year, time.Month, time.Day, 15, 0, 00, new TimeSpan(2, 0, 0));
                                DateTimeOffset time4 = new DateTimeOffset(time.Year, time.Month, time.Day, 19, 0, 00, new TimeSpan(2, 0, 0));
                                ration.Eating.Add(time1);
                                ration.Eating.Add(time2);
                                ration.Eating.Add(time3);
                                ration.Eating.Add(time4);
                                foreach (DateTimeOffset t in ration.Eating)
                                {
                                    if (time.Hour > t.Hour + weight * coef)
                                    {
                                        animal.ChangeHungry(true);
                                    }
                                    else
                                    {
                                        animal.ChangeHungry(false);
                                    }
                                }
                            }
                        }
                        break;
                    }

                    case int n when(keyValue.Value.Age <= 10):
                    {
                        foreach (Ration ration in Base.Rations.Values)
                        {
                            if (animal.ListAnimals == ration.ListAnimals)
                            {
                                int weight = ration.WeightPortion;
                                weight = 3;
                                ration.Weight(weight);
                                int coef = ration.Coefficient;
                                coef = 1;
                                ration.Coef(coef);
                                DateTimeOffset time1 = new DateTimeOffset(time.Year, time.Month, time.Day, 7, 0, 00, new TimeSpan(2, 0, 0));
                                DateTimeOffset time2 = new DateTimeOffset(time.Year, time.Month, time.Day, 17, 0, 00, new TimeSpan(2, 0, 0));
                                ration.Eating.Add(time1);
                                ration.Eating.Add(time2);
                                foreach (DateTimeOffset t in ration.Eating)
                                {
                                    if (time.Hour > t.Hour + weight * coef)
                                    {
                                        animal.ChangeHungry(true);
                                    }
                                    else
                                    {
                                        animal.ChangeHungry(false);
                                    }
                                }
                            }
                        }
                        break;
                    }

                    case int n when(keyValue.Value.Age > 10):
                    {
                        foreach (Ration ration in Base.Rations.Values)
                        {
                            if (animal.ListAnimals == ration.ListAnimals)
                            {
                                int weight = ration.WeightPortion;
                                weight = 1;
                                ration.Weight(weight);
                                int coef = ration.Coefficient;
                                coef = 3;
                                ration.Coef(coef);
                                DateTimeOffset time1 = new DateTimeOffset(time.Year, time.Month, time.Day, 7, 0, 00, new TimeSpan(2, 0, 0));

                                DateTimeOffset time3 = new DateTimeOffset(time.Year, time.Month, time.Day, 22, 0, 00, new TimeSpan(2, 0, 0));
                                ration.Eating.Add(time1);

                                ration.Eating.Add(time3);
                                foreach (DateTimeOffset t in ration.Eating)
                                {
                                    if (time.Hour > t.Hour + weight * coef)
                                    {
                                        animal.ChangeHungry(true);
                                    }
                                    else
                                    {
                                        animal.ChangeHungry(false);
                                    }
                                }
                            }
                        }
                        break;
                    }
                    }

                    break;
                }

                case ListOfAnimals.Delfins:
                {
                    switch (keyValue.Value.Age)
                    {
                    case int n when(keyValue.Value.Age <= 2):
                    {
                        foreach (Ration ration in Base.Rations.Values)
                        {
                            if (animal.ListAnimals == ration.ListAnimals)
                            {
                                int weight = ration.WeightPortion;
                                weight = 1;
                                ration.Weight(weight);
                                int coef = ration.Coefficient;
                                coef = 1;
                                ration.Coef(coef);
                                DateTimeOffset time1 = new DateTimeOffset(time.Year, time.Month, time.Day, 7, 0, 00, new TimeSpan(2, 0, 0));
                                DateTimeOffset time2 = new DateTimeOffset(time.Year, time.Month, time.Day, 11, 0, 00, new TimeSpan(2, 0, 0));
                                DateTimeOffset time3 = new DateTimeOffset(time.Year, time.Month, time.Day, 15, 0, 00, new TimeSpan(2, 0, 0));
                                DateTimeOffset time4 = new DateTimeOffset(time.Year, time.Month, time.Day, 16, 0, 00, new TimeSpan(2, 0, 0));
                                DateTimeOffset time5 = new DateTimeOffset(time.Year, time.Month, time.Day, 21, 0, 00, new TimeSpan(2, 0, 0));
                                ration.Eating.Add(time1);
                                ration.Eating.Add(time2);
                                ration.Eating.Add(time3);
                                ration.Eating.Add(time4);
                                ration.Eating.Add(time5);
                                foreach (DateTimeOffset t in ration.Eating)
                                {
                                    if (time.Hour > t.Hour + weight * coef)
                                    {
                                        animal.ChangeHungry(true);
                                    }
                                    else
                                    {
                                        animal.ChangeHungry(false);
                                    }
                                }
                            }
                        }
                        break;
                    }

                    case int n when(keyValue.Value.Age <= 5):
                    {
                        foreach (Ration ration in Base.Rations.Values)
                        {
                            if (animal.ListAnimals == ration.ListAnimals)
                            {
                                int weight = ration.WeightPortion;
                                weight = 6;
                                ration.Weight(weight);
                                int coef = ration.Coefficient;
                                coef = 4;
                                ration.Coef(coef);
                                DateTimeOffset time1 = new DateTimeOffset(time.Year, time.Month, time.Day, 7, 0, 00, new TimeSpan(2, 0, 0));
                                DateTimeOffset time2 = new DateTimeOffset(time.Year, time.Month, time.Day, 17, 0, 00, new TimeSpan(2, 0, 0));
                                ration.Eating.Add(time1);
                                ration.Eating.Add(time2);
                                foreach (DateTimeOffset t in ration.Eating)
                                {
                                    if (time.Hour > t.Hour + weight * coef)
                                    {
                                        animal.ChangeHungry(true);
                                    }
                                    else
                                    {
                                        animal.ChangeHungry(false);
                                    }
                                }
                            }
                        }
                        break;
                    }

                    case int n when(keyValue.Value.Age <= 5):
                    {
                        foreach (Ration ration in Base.Rations.Values)
                        {
                            if (animal.ListAnimals == ration.ListAnimals)
                            {
                                int weight = ration.WeightPortion;
                                weight = 2;
                                ration.Weight(weight);
                                int coef = ration.Coefficient;
                                coef = 3;
                                ration.Coef(coef);
                                DateTimeOffset time1 = new DateTimeOffset(time.Year, time.Month, time.Day, 7, 0, 00, new TimeSpan(2, 0, 0));
                                DateTimeOffset time2 = new DateTimeOffset(time.Year, time.Month, time.Day, 17, 0, 00, new TimeSpan(2, 0, 0));
                                ration.Eating.Add(time1);
                                ration.Eating.Add(time2);
                                foreach (DateTimeOffset t in ration.Eating)
                                {
                                    if (time.Hour > t.Hour + weight * coef)
                                    {
                                        animal.ChangeHungry(true);
                                    }
                                    else
                                    {
                                        animal.ChangeHungry(false);
                                    }
                                }
                            }
                        }
                        break;
                    }

                    case int n when(keyValue.Value.Age <= 10):
                    {
                        foreach (Ration ration in Base.Rations.Values)
                        {
                            if (animal.ListAnimals == ration.ListAnimals)
                            {
                                int weight = ration.WeightPortion;
                                weight = 4;
                                ration.Weight(weight);
                                int coef = ration.Coefficient;
                                coef = 3;
                                ration.Coef(coef);
                                DateTimeOffset time1 = new DateTimeOffset(time.Year, time.Month, time.Day, 7, 0, 00, new TimeSpan(2, 0, 0));

                                DateTimeOffset time3 = new DateTimeOffset(time.Year, time.Month, time.Day, 19, 0, 00, new TimeSpan(2, 0, 0));
                                ration.Eating.Add(time1);

                                ration.Eating.Add(time3);
                                foreach (DateTimeOffset t in ration.Eating)
                                {
                                    if (time.Hour > t.Hour + weight * coef)
                                    {
                                        animal.ChangeHungry(true);
                                    }
                                    else
                                    {
                                        animal.ChangeHungry(false);
                                    }
                                }
                            }
                        }
                        break;
                    }

                    case int n when(keyValue.Value.Age > 10):
                    {
                        foreach (Ration ration in Base.Rations.Values)
                        {
                            if (animal.ListAnimals == ration.ListAnimals)
                            {
                                int weight = ration.WeightPortion;
                                weight = 4;
                                ration.Weight(weight);
                                int coef = ration.Coefficient;
                                coef = 3;
                                ration.Coef(coef);
                                DateTimeOffset time1 = new DateTimeOffset(time.Year, time.Month, time.Day, 7, 0, 00, new TimeSpan(2, 0, 0));

                                DateTimeOffset time3 = new DateTimeOffset(time.Year, time.Month, time.Day, 19, 0, 00, new TimeSpan(2, 0, 0));
                                ration.Eating.Add(time1);

                                ration.Eating.Add(time3);
                                foreach (DateTimeOffset t in ration.Eating)
                                {
                                    if (time.Hour > t.Hour + weight * coef)
                                    {
                                        animal.ChangeHungry(true);
                                    }
                                    else
                                    {
                                        animal.ChangeHungry(false);
                                    }
                                }
                            }
                        }
                        break;
                    }
                    }

                    break;
                }

                case ListOfAnimals.Zebras:
                {
                    switch (keyValue.Value.Age)
                    {
                    case int n when(keyValue.Value.Age <= 3):
                    {
                        foreach (Ration ration in Base.Rations.Values)
                        {
                            if (animal.ListAnimals == ration.ListAnimals)
                            {
                                int weight = ration.WeightPortion;
                                weight = 1;
                                ration.Weight(weight);
                                int coef = ration.Coefficient;
                                coef = 3;
                                ration.Coef(coef);
                                DateTimeOffset time1 = new DateTimeOffset(time.Year, time.Month, time.Day, 7, 0, 00, new TimeSpan(2, 0, 0));
                                DateTimeOffset time2 = new DateTimeOffset(time.Year, time.Month, time.Day, 11, 0, 00, new TimeSpan(2, 0, 0));
                                DateTimeOffset time3 = new DateTimeOffset(time.Year, time.Month, time.Day, 15, 0, 00, new TimeSpan(2, 0, 0));
                                DateTimeOffset time4 = new DateTimeOffset(time.Year, time.Month, time.Day, 16, 0, 00, new TimeSpan(2, 0, 0));
                                DateTimeOffset time5 = new DateTimeOffset(time.Year, time.Month, time.Day, 21, 0, 00, new TimeSpan(2, 0, 0));
                                ration.Eating.Add(time1);
                                ration.Eating.Add(time2);
                                ration.Eating.Add(time3);
                                ration.Eating.Add(time4);
                                ration.Eating.Add(time5);
                                foreach (DateTimeOffset t in ration.Eating)
                                {
                                    if (time.Hour > t.Hour + weight * coef)
                                    {
                                        animal.ChangeHungry(true);
                                    }
                                    else
                                    {
                                        animal.ChangeHungry(false);
                                    }
                                }
                            }
                        }
                        break;
                    }

                    case int n when(keyValue.Value.Age <= 5):
                    {
                        foreach (Ration ration in Base.Rations.Values)
                        {
                            if (animal.ListAnimals == ration.ListAnimals)
                            {
                                int weight = ration.WeightPortion;
                                weight = 2;
                                ration.Weight(weight);
                                int coef = ration.Coefficient;
                                coef = 3;
                                ration.Coef(coef);
                                DateTimeOffset time1 = new DateTimeOffset(time.Year, time.Month, time.Day, 7, 0, 00, new TimeSpan(2, 0, 0));
                                DateTimeOffset time2 = new DateTimeOffset(time.Year, time.Month, time.Day, 17, 0, 00, new TimeSpan(2, 0, 0));
                                ration.Eating.Add(time1);
                                ration.Eating.Add(time2);
                                foreach (DateTimeOffset t in ration.Eating)
                                {
                                    if (time.Hour > t.Hour + weight * coef)
                                    {
                                        animal.ChangeHungry(true);
                                    }
                                    else
                                    {
                                        animal.ChangeHungry(false);
                                    }
                                }
                            }
                        }
                        break;
                    }

                    case int n when(keyValue.Value.Age <= 10):
                    {
                        foreach (Ration ration in Base.Rations.Values)
                        {
                            if (animal.ListAnimals == ration.ListAnimals)
                            {
                                int weight = ration.WeightPortion;
                                weight = 1;
                                ration.Weight(weight);
                                int coef = ration.Coefficient;
                                coef = 4;
                                ration.Coef(coef);
                                DateTimeOffset time1 = new DateTimeOffset(time.Year, time.Month, time.Day, 7, 0, 00, new TimeSpan(2, 0, 0));
                                DateTimeOffset time2 = new DateTimeOffset(time.Year, time.Month, time.Day, 14, 0, 00, new TimeSpan(2, 0, 0));
                                DateTimeOffset time3 = new DateTimeOffset(time.Year, time.Month, time.Day, 19, 0, 00, new TimeSpan(2, 0, 0));
                                ration.Eating.Add(time1);
                                ration.Eating.Add(time2);
                                foreach (DateTimeOffset t in ration.Eating)
                                {
                                    if (time.Hour > t.Hour + weight * coef)
                                    {
                                        animal.ChangeHungry(true);
                                    }
                                    else
                                    {
                                        animal.ChangeHungry(false);
                                    }
                                }
                            }
                        }
                        break;
                    }

                    case int n when(keyValue.Value.Age > 10):
                    {
                        foreach (Ration ration in Base.Rations.Values)
                        {
                            if (animal.ListAnimals == ration.ListAnimals)
                            {
                                int weight = ration.WeightPortion;
                                weight = 4;
                                ration.Weight(weight);
                                int coef = ration.Coefficient;
                                coef = 3;
                                ration.Coef(coef);
                                DateTimeOffset time1 = new DateTimeOffset(time.Year, time.Month, time.Day, 9, 0, 00, new TimeSpan(2, 0, 0));

                                DateTimeOffset time3 = new DateTimeOffset(time.Year, time.Month, time.Day, 19, 0, 00, new TimeSpan(2, 0, 0));
                                ration.Eating.Add(time1);

                                ration.Eating.Add(time3);
                                foreach (DateTimeOffset t in ration.Eating)
                                {
                                    if (time.Hour > t.Hour + weight * coef)
                                    {
                                        animal.ChangeHungry(true);
                                    }
                                    else
                                    {
                                        animal.ChangeHungry(false);
                                    }
                                }
                            }
                        }
                        break;
                    }
                    }

                    break;
                }
                }
            }


            foreach (KeyValuePair <Guid, Aviary> keyValue in Base.Aviaries)
            {
                Console.WriteLine(keyValue.Value.Number);
                foreach (Animal animal in keyValue.Value.Animals)
                {
                    if (animal.ListAnimals == keyValue.Value.ListAnimals)
                    {
                        Console.WriteLine("Ім'я тварини: " + animal.Name + ", " + "Дата народження: " + animal.YearOfBirth + ", Age: " + animal.Age + ", Вольєр " + keyValue.Value.Number + "  " + animal.ListAnimals + "Чи голодна тварина? " + animal.Hungry + ", " + "Яка тварина? " + animal.TypeOfAnimalsOnTutrion + ", Раціон : ");
                    }
                }
            }

            Console.WriteLine("Вивести список голодних тварин?");
            string answer = Console.ReadLine();

            if (answer == "y")
            {
                foreach (KeyValuePair <Guid, Animal> animal in Base.Animals)
                {
                    bool r = animal.Value.Hungry;
                    if (r == true)
                    {
                        HungryAnimal.Add(animal.Value);
                    }
                }
            }
            foreach (Animal animal in HungryAnimal)
            {
                Console.WriteLine("Список голодних тварин: " + animal.Name + animal.ListAnimals);
            }


            if (HungryAnimal.Count == 0)
            {
                Console.WriteLine("У вас немає голодних тварин");
            }
            else
            {
                for (int i = HungryAnimal.Count; i > 0; i--)
                {
                    int count = HungryAnimal.Count;
                    Console.WriteLine(count);

                    for (int l = count; l > 0; l--)
                    {
                        Console.WriteLine("Ваші запаси їжї");

                        foreach (Food food in Base.Foods)
                        {
                            Console.WriteLine(food.Name + " " + food.Weight);
                        }
                    }

                    Console.WriteLine("Ви хочете нагодувати тварин?");
                    string answer3 = Console.ReadLine();
                    if (answer3 == "y")
                    {
                        Console.WriteLine("Кого хочете нагодувати? Введить ім'я :");
                        string answer2 = Console.ReadLine();
                        foreach (KeyValuePair <Guid, Aviary> keyValue in Base.Aviaries)
                        {
                            foreach (Animal animal in keyValue.Value.Animals)
                            {
                                if (animal.Name == answer2)
                                {
                                    bool k = animal.Hungry;
                                    k = false;
                                    HungryAnimal.Remove(animal);
                                    animal.ChangeHungry(k);

                                    foreach (Food food in Base.Foods)
                                    {
                                        foreach (KeyValuePair <Guid, Ration> rat in Base.Rations)
                                        {
                                            if (food.ListAnimals == rat.Value.ListAnimals)
                                            {
                                                int weight = food.Weight;
                                                weight -= rat.Value.WeightPortion;
                                                food.ChangeWeight(weight);
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }