示例#1
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;
     }
 }
示例#2
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;
     }
 }