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; } }
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; } }