/// <summary>
        /// Creator: Austin Gee
        /// Created On: 5/1/2020
        ///
        /// Auto generates columns
        /// </summary>
        /// <remarks>
        /// Updater Name
        /// Updated:
        /// Update:
        /// </remarks>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void CancelApplication_Click(object sender, RoutedEventArgs e)
        {
            IAdoptionAppointmentManager adoptionAppointmentManager = new AdoptionAppointmentManager();

            if (DGViewData.SelectedItem == null)
            {
                WPFErrorHandler.ErrorMessage("Please select an adoption application.");
            }
            else
            {
                System.Windows.Forms.DialogResult dialogResult = System.Windows.Forms.MessageBox.Show("Are you sure you want to cancel the Adoption Application?", "Cancel Application", System.Windows.Forms.MessageBoxButtons.YesNo);
                if (dialogResult == System.Windows.Forms.DialogResult.Yes)
                {
                    var appointments = adoptionAppointmentManager.RetrieveAdoptionAppointmentsByCustomerEmailAndActive(((ApplicationVM)DGViewData.SelectedItem).CustomerEmail);
                    foreach (var a in appointments)
                    {
                        adoptionAppointmentManager.EditAdoptionAppointmentActive(a.AppointmentID, false);
                    }
                    IAdoptionAnimalManager adoptionAnimalManager = new AdoptionAnimalManager();
                    adoptionAnimalManager.EditAnimalAdoptable(((ApplicationVM)DGViewData.SelectedItem).AnimalID, true);
                    _adoptionApplicationManager.DeactivateAdoptionApplication(((ApplicationVM)DGViewData.SelectedItem).AdoptionApplicationID);
                }
                else if (dialogResult == System.Windows.Forms.DialogResult.No)
                {
                }
            }
            DGViewData.ItemsSource = _adoptionApplicationManager.RetrieveAdoptionApplicationsByActiveWithName(true);
        }
 /// <summary>
 /// Creator: Awaab Elamin
 /// Created: 2020/3/7
 /// Approver: Mohamed Elamin
 /// default constructor assgined intial values
 /// </summary>
 /// <remarks>
 /// UPDATED BY: NA
 /// UPDATE DATE: NA
 /// CHANGE: NA
 /// </remarks>
 public AdoptionController()
 {
     adoptionApplication        = new AdoptionApplication();
     adoptionApplicationManager = new ReviewerManager();
     questionnair                = new Questionnair();
     _adoptionCustomerManager    = new AdoptionCustomerManager();
     _adoptionApplicationManager = new AdoptionApplicationManager();
     _adoptionAnimalManager      = new AdoptionAnimalManager();
     _adoptionAppointmentManager = new AdoptionAppointmentManager();
     _userManager                = new UserManager();
     _animalManager              = new AnimalManager();
 }
        public void TestAdoptionAnimalDeactivateAnimal()
        {
            // arrange
            bool result = false;
            IAdoptionAnimalManager adoptionAnimalManager = new AdoptionAnimalManager(_fakeAdoptionAnimalAccessor);

            // act
            result = adoptionAnimalManager.DeactivateAnimal(000);

            // assert
            Assert.IsTrue(result);
        }
        public void TestAdoptionAnimalRetrieveAnimalsByActive()
        {
            // arrange
            List <AdoptionAnimalVM> adoptionAnimalVMs;
            IAdoptionAnimalManager  adoptionAnimalManager = new AdoptionAnimalManager(_fakeAdoptionAnimalAccessor);

            // act
            adoptionAnimalVMs = adoptionAnimalManager.RetrieveAdoptionAnimalsByActive(true);

            // assert
            Assert.AreEqual(3, adoptionAnimalVMs.Count);
        }
        public void TestAdoptionAnimalUpdateAnimalAdoptable()
        {
            // arrange

            IAdoptionAnimalManager adoptionAnimalManager = new AdoptionAnimalManager(_fakeAdoptionAnimalAccessor);

            // act
            var result = adoptionAnimalManager.EditAnimalAdoptable(000, true);

            // assert
            Assert.IsTrue(result);
        }
        public void TestAdoptionAnimalRetrieveAnimalsByActiveAndAdoptable()
        {
            // arrange

            IAdoptionAnimalManager adoptionAnimalManager = new AdoptionAnimalManager(_fakeAdoptionAnimalAccessor);

            // act
            var result = adoptionAnimalManager.RetrieveAdoptionAnimalsByActiveAndAdoptable();

            // assert
            Assert.AreEqual(3, result.Count);
        }