示例#1
0
        /// <summary>
        /// Method throw Animals to list from Database
        /// </summary>
        /// <returns></returns>
        public List<Animal> GetAnimals()
        {
            m_dataBase = new DataBaseAccess();
            DataTable tblData = m_dataBase.LoadAnimalData();

            return CreateAnimals(tblData);
        }
示例#2
0
        /// <summary>
        /// Read the data from the GUI, set up an object and save the object in
        /// the animal registry.
        /// </summary>
        private void AddAnimalItem()
        {
            //type now known at this time
            Animal animalObject = null;

            //for mammal
            string NoOfTeethtxtString = null;

            //for birds
            string WingSpanString = null;

            //for marine
            string depthString = null;

            //for reptile
            string isPoisonousString = null;

            //for insects
            string canFlyString = null;

            //comon for all animals

            //name of the animal
            string name = txtName.Text.Trim();

            // the age of the animal
            string ageString = txtAge.Text.Trim();

            //Important information about the animal
            string importantInfo = txtImportantInfo.Text.Trim();

            //common for mammals
            string daysInQuarantineString = txtDaysInQarantine.Text.Trim();
            bool InQuarantine = isInQuarantine();

            //category of animal
            CategoryType category = (CategoryType)lstBoxCategory.SelectedIndex;

            //gender of animal
            GenderType gender = (GenderType)lstBoxGender.SelectedIndex;

            switch (Convert.ToString(lstBoxAnimalObject.SelectedItem))
            {

                case "Duck":

                    try
                    {

                        animalObject = BirdFactory.CreateBird(BirdSpecies.Duck);

                        if (animalObject == null)
                        {
                            int result;
                            int answer;
                            int zero = 0;

                            answer = 1;

                            result = answer / zero;

                        }

                    }
                    catch (NonExistentAnimalTypeException ex)
                    {

                        MessageBox.Show("Invalid animal", ex.Message, MessageBoxButtons.OK, MessageBoxIcon.Error);
                        return;

                    }

                    category = CategoryType.Bird;

                    WingSpanString = txtSpecificData.Text.Trim();

                    try
                    {
                        //this part takes care of the gender
                        if ((GenderType)lstBoxGender.SelectedIndex == 0)
                        {

                            animalObject.Gender = GenderType.Male;
                        }
                        if (lstBoxGender.SelectedIndex == 1)
                        {
                            animalObject.Gender = GenderType.Female;
                        }
                        if (lstBoxGender.SelectedIndex == 2)
                        {
                            animalObject.Gender = GenderType.Unknown;
                        }
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show("Invalid Gender", ex.Message, MessageBoxButtons.OK, MessageBoxIcon.Error);

                    }

                    //verify name field
                    if (string.IsNullOrEmpty(name))
                    {

                        MessageBox.Show("Invalid name", "invalid input", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        txtName.Clear();
                        txtName.Focus();
                        return;
                    }

                    try
                    {

                        //assign vars for mammal ------ > constructor has to include the fields needed
                        animalObject.WingSpan = Convert.ToDouble(WingSpanString);

                        if (animalObject.WingSpan <= 0)
                        {
                            MessageBox.Show("Invalid wingspan", "Error try again", MessageBoxButtons.OK, MessageBoxIcon.Error);
                            txtSpecificData.Clear();
                            txtSpecificData.Focus();
                            return;
                        }

                    }
                    catch (Exception)
                    {
                        MessageBox.Show("Invalid eagle Wingspan", "Error try again", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        txtSpecificData.Clear();
                        txtSpecificData.Focus();
                        return;

                    }

                    break;

                case "Eagle":

                    try
                    {

                        animalObject = BirdFactory.CreateBird(BirdSpecies.Eagle);

                        if (animalObject == null)
                        {
                            int result;
                            int answer;
                            int zero = 0;

                            answer = 1;

                            result = answer / zero;

                        }

                    }
                    catch (NonExistentAnimalTypeException ex)
                    {

                        MessageBox.Show("Invalid animal", ex.Message, MessageBoxButtons.OK, MessageBoxIcon.Error);
                        return;

                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show("Invalid animal", ex.Message, MessageBoxButtons.OK, MessageBoxIcon.Error);
                        return;
                    }

                    category = CategoryType.Bird;

                    WingSpanString = txtSpecificData.Text.Trim();

                    try
                    {
                        //this part takes care of the gender
                        if ((GenderType)lstBoxGender.SelectedIndex == 0)
                        {

                            animalObject.Gender = GenderType.Male;
                        }
                        if (lstBoxGender.SelectedIndex == 1)
                        {
                            animalObject.Gender = GenderType.Female;
                        }
                        if (lstBoxGender.SelectedIndex == 2)
                        {
                            animalObject.Gender = GenderType.Unknown;
                        }
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show("Invalid Gender", ex.Message, MessageBoxButtons.OK, MessageBoxIcon.Error);

                    }

                    //verify name field
                    if (string.IsNullOrEmpty(name))
                    {

                        MessageBox.Show("Invalid name", "invalid input", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        txtName.Clear();
                        txtName.Focus();
                        return;
                    }

                    try
                    {

                        //assign vars for mammal ------ > constructor has to include the fields needed
                        animalObject.WingSpan = Convert.ToDouble(WingSpanString);

                        if (animalObject.WingSpan <= 0)
                        {
                            MessageBox.Show("Invalid wingspan", "Error try again", MessageBoxButtons.OK, MessageBoxIcon.Error);
                            txtSpecificData.Clear();
                            txtSpecificData.Focus();
                            return;
                        }

                    }
                    catch (Exception)
                    {
                        MessageBox.Show("Invalid eagle Wingspan", "Error try again", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        txtSpecificData.Clear();
                        txtSpecificData.Focus();
                        return;

                    }

                    break;

                case "Falcon":

                    try
                    {

                        animalObject = BirdFactory.CreateBird(BirdSpecies.Falcon);

                    }
                    catch (NonExistentAnimalTypeException ex)
                    {

                        MessageBox.Show("Invalid animal", ex.Message, MessageBoxButtons.OK, MessageBoxIcon.Error);

                    }
                    finally
                    {

                        category = CategoryType.Bird;
                    }

                    WingSpanString = txtSpecificData.Text.Trim();

                    try
                    {
                        //This part takes care of the gender
                        if ((GenderType)lstBoxGender.SelectedIndex == 0)
                        {

                            animalObject.Gender = GenderType.Male;
                        }
                        if (lstBoxGender.SelectedIndex == 1)
                        {
                            animalObject.Gender = GenderType.Female;
                        }
                        if (lstBoxGender.SelectedIndex == 2)
                        {
                            animalObject.Gender = GenderType.Unknown;
                        }

                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show("Invalid Gender", ex.Message, MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                    //verify name field
                    if (string.IsNullOrEmpty(name))
                    {

                        MessageBox.Show("Invalid name", "invalid input", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        txtName.Clear();
                        txtName.Focus();
                        return;
                    }

                    try
                    {
                        //assign vars for mammal ------ > constructor has to include the fields needed
                        animalObject.WingSpan = Convert.ToDouble(WingSpanString);

                        if (animalObject.WingSpan <= 0)
                        {
                            MessageBox.Show("Invalid wingspan", "Error try again", MessageBoxButtons.OK, MessageBoxIcon.Error);
                            txtSpecificData.Clear();
                            txtSpecificData.Focus();
                            return;
                        }
                    }
                    catch (Exception)
                    {

                        MessageBox.Show("Invalid falcon wingspan", "invalid input", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        txtSpecificData.Clear();
                        txtSpecificData.Focus();
                        return;

                    }

                    break;

                case "Bee":

                    try
                    {

                        animalObject = InsectFactory.CreateInsect(InsectSpecies.Bee);

                    }
                    catch (NonExistentAnimalTypeException ex)
                    {
                        MessageBox.Show("Invalid animal", ex.Message, MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                    finally
                    {

                        category = CategoryType.Insect;
                    }

                    canFlyString = txtSpecificData.Text.Trim();

                    try
                    {
                        //This part takes care of the gender
                        if ((GenderType)lstBoxGender.SelectedIndex == 0)
                        {

                            animalObject.Gender = GenderType.Male;
                        }
                        if (lstBoxGender.SelectedIndex == 1)
                        {
                            animalObject.Gender = GenderType.Female;
                        }
                        if (lstBoxGender.SelectedIndex == 2)
                        {
                            animalObject.Gender = GenderType.Unknown;
                        }
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show("Invalid Gender", ex.Message, MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }

                    //verify name field
                    if (string.IsNullOrEmpty(name))
                    {

                        MessageBox.Show("Invalid name", "invalid input", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        txtName.Clear();
                        txtName.Focus();
                        return;
                    }

                    try
                    {
                        //it flies
                        if (txtSpecificData.Text.Trim() == "Y" || txtSpecificData.Text.Trim() == "y")
                        {
                            animalObject.Flying = true;
                        }

                        //does not fly
                        else if (txtSpecificData.Text.Trim() == "N" || txtSpecificData.Text.Trim() == "n")
                        {
                            animalObject.Flying = false;
                        }
                        else
                        {
                            MessageBox.Show("Invalid bee posonois data", "choose again", MessageBoxButtons.OK, MessageBoxIcon.Error);
                            txtSpecificData.Clear();
                            txtSpecificData.Focus();
                            return;

                        }

                    }
                    catch (Exception)
                    {
                        MessageBox.Show("Invalid bee poisonous data", "choose again", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        txtSpecificData.Clear();
                        txtSpecificData.Focus();
                        return;

                    }

                    break;

                case "Butterfly":

                    try
                    {
                        animalObject = InsectFactory.CreateInsect(InsectSpecies.Butterfly);
                    }
                    catch (NonExistentAnimalTypeException ex)
                    {
                        MessageBox.Show("Invalid animal", ex.Message, MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                    finally
                    {
                        category = CategoryType.Insect;
                    }

                    canFlyString = txtSpecificData.Text.Trim();

                    try
                    {
                        //This part takes care of the gender
                        if ((GenderType)lstBoxGender.SelectedIndex == 0)
                        {

                            animalObject.Gender = GenderType.Male;
                        }
                        if (lstBoxGender.SelectedIndex == 1)
                        {
                            animalObject.Gender = GenderType.Female;
                        }
                        if (lstBoxGender.SelectedIndex == 2)
                        {
                            animalObject.Gender = GenderType.Unknown;
                        }

                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show("Invalid Gender", ex.Message, MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                    //verify name field
                    if (string.IsNullOrEmpty(name))
                    {

                        MessageBox.Show("Invalid name", "invalid input", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        txtName.Clear();
                        txtName.Focus();
                        return;
                    }

                    try
                    {
                        //it flies
                        if (txtSpecificData.Text.Trim() == "Y" || txtSpecificData.Text.Trim() == "y")
                        {
                            animalObject.Flying = true;
                        }

                        //does not fly
                        else if (txtSpecificData.Text.Trim() == "N" || txtSpecificData.Text.Trim() == "n")
                        {
                            animalObject.Flying = false;
                        }
                        else
                        {
                            MessageBox.Show("Butterfly posonous data invalid", "choose again", MessageBoxButtons.OK, MessageBoxIcon.Error);
                            txtSpecificData.Clear();
                            txtSpecificData.Focus();
                            return;

                        }

                    }

                    catch (Exception)
                    {
                        MessageBox.Show("Butterfly posonous data invalid", "choose again", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        txtSpecificData.Clear();
                        txtSpecificData.Focus();
                        return;

                    }

                    break;

                case "Cat":

                    try
                    {
                        animalObject = MammalFactory.CreateMammal(MammalSpecies.Cat);
                    }
                    catch (NonExistentAnimalTypeException ex)
                    {
                        MessageBox.Show("Invalid animal", ex.Message, MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                    finally
                    {
                        category = CategoryType.Mammal;

                    }

                    NoOfTeethtxtString = txtSpecificData.Text.Trim();
                    daysInQuarantineString = txtDaysInQarantine.Text.Trim();
                    InQuarantine = isInQuarantine();

                    try
                    {
                        //This part takes care of the gender
                        if ((GenderType)lstBoxGender.SelectedIndex == 0)
                        {

                            animalObject.Gender = GenderType.Male;
                        }
                        if (lstBoxGender.SelectedIndex == 1)
                        {
                            animalObject.Gender = GenderType.Female;
                        }
                        if (lstBoxGender.SelectedIndex == 2)
                        {
                            animalObject.Gender = GenderType.Unknown;
                        }

                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show("Invalid Gender", ex.Message, MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                    //assign vars for mammal ------ > constructor has to include the fields needed

                    //verify name field
                    if (string.IsNullOrEmpty(name))
                    {

                        MessageBox.Show("Invalid name", "invalid input", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        txtName.Clear();
                        txtName.Focus();
                        return;
                    }

                    try
                    {

                        animalObject.NumberOfTeeth = Convert.ToInt32(NoOfTeethtxtString);

                        if (animalObject.NumberOfTeeth <= 0)
                        {
                            MessageBox.Show("Invalid No of. teeth", "Error try again", MessageBoxButtons.OK, MessageBoxIcon.Error);
                            txtSpecificData.Clear();
                            txtSpecificData.Focus();
                            return;
                        }
                    }
                    catch (Exception)
                    {

                        MessageBox.Show("Invalid number of teeth", "Try again", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        txtSpecificData.Clear();
                        txtSpecificData.Focus();
                        return;
                    }

                    //set the quarantine info to true or false
                    if (InQuarantine == true)
                    {
                        animalObject.Quarantine = true;

                        try
                        {

                            animalObject.NumberOfDays = Convert.ToInt32(daysInQuarantineString);
                        }

                        catch (Exception)
                        {
                            MessageBox.Show("Quarantine Error", "Try again", MessageBoxButtons.OK, MessageBoxIcon.Error);
                            txtDaysInQarantine.Clear();
                            txtDaysInQarantine.Focus();
                            return;

                        }

                    }
                    else
                    {
                        animalObject.Quarantine = false;

                    }

                    //constructor has to include the fields needed
                    // txtSpecialData.Text = animalObject.MammalData();

                    break;

                case "Dog":

                    try
                    {
                        animalObject = MammalFactory.CreateMammal(MammalSpecies.Dog);
                    }
                    catch (NonExistentAnimalTypeException ex)
                    {
                        MessageBox.Show("Invalid animal", ex.Message, MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                    finally
                    {

                        category = CategoryType.Mammal;
                    }

                    NoOfTeethtxtString = txtSpecificData.Text.Trim();
                    daysInQuarantineString = txtDaysInQarantine.Text.Trim();
                    InQuarantine = isInQuarantine();

                    try
                    {
                        //This part takes care of the gender
                        if ((GenderType)lstBoxGender.SelectedIndex == 0)
                        {

                            animalObject.Gender = GenderType.Male;
                        }
                        if (lstBoxGender.SelectedIndex == 1)
                        {
                            animalObject.Gender = GenderType.Female;
                        }
                        if (lstBoxGender.SelectedIndex == 2)
                        {
                            animalObject.Gender = GenderType.Unknown;
                        }

                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show("Invalid Gender", ex.Message, MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }

                    //assign vars for mammal ------ > constructor has to include the fields needed

                    //verify name field
                    if (string.IsNullOrEmpty(name))
                    {

                        MessageBox.Show("Invalid name", "invalid input", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        txtName.Clear();
                        txtName.Focus();
                        return;
                    }

                    try
                    {
                        {
                            animalObject.NumberOfTeeth = Convert.ToInt32(NoOfTeethtxtString);

                            if (animalObject.NumberOfTeeth <= 0)
                            {
                                MessageBox.Show("Invalid No of. teeth", "Error try again", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                txtSpecificData.Clear();
                                txtSpecificData.Focus();
                                return;
                            }
                        }
                    }

                    catch (Exception)
                    {
                        MessageBox.Show("Invalid number of teeth", "invalid input", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        txtSpecificData.Clear();
                        txtSpecificData.Focus();
                        return;

                    }

                    //set the quarantine info to true or false
                    if (InQuarantine == true)
                    {
                        animalObject.Quarantine = true;

                        try
                        {

                            animalObject.NumberOfDays = Convert.ToInt32(daysInQuarantineString);

                            if (animalObject.NumberOfDays <= 0)
                            {
                                MessageBox.Show("Invalid No of quarantine days", "Error try again", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                txtDaysInQarantine.Clear();
                                txtDaysInQarantine.Focus();
                                return;
                            }
                        }

                        catch (Exception)
                        {
                            MessageBox.Show("Quarantine Error", "Try again", MessageBoxButtons.OK, MessageBoxIcon.Error);
                            txtDaysInQarantine.Clear();
                            txtDaysInQarantine.Focus();
                            return;

                        }
                    }
                    else
                    {
                        animalObject.Quarantine = false;

                    }

                    //constructor has to include the fields needed
                    // txtSpecialData.Text = animalObject.MammalData();

                    break;

                case "Shark":

                    try
                    {
                        animalObject = MarineFactory.CreateMarine(MarineSpecies.Shark);
                    }
                    catch (NonExistentAnimalTypeException ex)
                    {
                        MessageBox.Show("Invalid animal", ex.Message, MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }

                    finally
                    {
                        category = CategoryType.Marine;
                    }
                    depthString = txtSpecificData.Text.Trim();

                    try
                    {
                        //This part takes care of the gender
                        if ((GenderType)lstBoxGender.SelectedIndex == 0)
                        {

                            animalObject.Gender = GenderType.Male;
                        }
                        if (lstBoxGender.SelectedIndex == 1)
                        {
                            animalObject.Gender = GenderType.Female;
                        }
                        if (lstBoxGender.SelectedIndex == 2)
                        {
                            animalObject.Gender = GenderType.Unknown;
                        }

                    }

                    catch (Exception ex)
                    {
                        MessageBox.Show("Invalid Gender", ex.Message, MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }

                    //verify name field
                    if (string.IsNullOrEmpty(name))
                    {

                        MessageBox.Show("Invalid name", "invalid input", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        txtName.Clear();
                        txtName.Focus();
                        return;
                    }

                    try
                    {
                        //assign vars for Shark ------ > constructor has to include the fields needed
                        animalObject.Depth = Convert.ToDouble(depthString);

                        if (animalObject.Depth <= 0)
                        {
                            MessageBox.Show("Invalid No of shark Depth", "Error try again", MessageBoxButtons.OK, MessageBoxIcon.Error);
                            txtSpecificData.Clear();
                            txtSpecificData.Focus();
                            return;
                        }
                    }

                    catch (Exception)
                    {
                        MessageBox.Show("Invalid shark depth", "invalid input", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        txtSpecificData.Clear();
                        txtSpecificData.Focus();
                        return;

                    }

                    break;

                case "Turtle":
                    try
                    {
                        animalObject = MarineFactory.CreateMarine(MarineSpecies.Turtle);
                    }
                    catch (NonExistentAnimalTypeException ex)
                    {
                        MessageBox.Show("Invalid animal", ex.Message, MessageBoxButtons.OK, MessageBoxIcon.Error);

                    }
                    finally
                    {
                        category = CategoryType.Marine;
                    }

                    depthString = txtSpecificData.Text.Trim();

                    try
                    {
                        //This part takes care of the gender
                        if ((GenderType)lstBoxGender.SelectedIndex == 0)
                        {

                            animalObject.Gender = GenderType.Male;
                        }
                        if (lstBoxGender.SelectedIndex == 1)
                        {
                            animalObject.Gender = GenderType.Female;
                        }
                        if (lstBoxGender.SelectedIndex == 2)
                        {
                            animalObject.Gender = GenderType.Unknown;
                        }

                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show("Invalid Gender", ex.Message, MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }

                    //verify name field
                    if (string.IsNullOrEmpty(name))
                    {

                        MessageBox.Show("Invalid name", "invalid input", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        txtName.Clear();
                        txtName.Focus();
                        return;
                    }

                    try
                    {
                        //assign vars for turtle ------ > constructor has to include the fields needed
                        animalObject.Depth = Convert.ToDouble(depthString);
                        if (animalObject.Depth <= 0)
                        {
                            MessageBox.Show("Invalid No of turtle Depth", "Error try again", MessageBoxButtons.OK, MessageBoxIcon.Error);
                            txtSpecificData.Clear();
                            txtSpecificData.Focus();
                            return;
                        }
                    }
                    catch (Exception)
                    {
                        MessageBox.Show("Invalid Turtle depth", "Invalid input", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        txtSpecificData.Clear();
                        txtSpecificData.Focus();
                        return;
                    }

                    break;

                case "Chamaleon":

                    try
                    {
                        animalObject = ReptileFactory.CreateReptile(ReptileSpecies.Chamaleon);
                    }
                    catch (NonExistentAnimalTypeException ex)
                    {
                        MessageBox.Show("Invalid animal", ex.Message, MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                    finally
                    {
                        category = CategoryType.Reptile;
                    }
                    isPoisonousString = txtSpecificData.Text.Trim();

                    try
                    {
                        //This part takes care of the gender
                        if ((GenderType)lstBoxGender.SelectedIndex == 0)
                        {

                            animalObject.Gender = GenderType.Male;
                        }
                        if (lstBoxGender.SelectedIndex == 1)
                        {
                            animalObject.Gender = GenderType.Female;
                        }
                        if (lstBoxGender.SelectedIndex == 2)
                        {
                            animalObject.Gender = GenderType.Unknown;
                        }
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show("Invalid Gender", ex.Message, MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                    try
                    {

                        //it is posonous
                        if (txtSpecificData.Text.Trim() == "Y" || txtSpecificData.Text.Trim() == "y")
                        {
                            animalObject.Poisonous = true;
                        }

                        //not posonous
                        else if (txtSpecificData.Text.Trim() == "N" || txtSpecificData.Text.Trim() == "n")
                        {
                            animalObject.Poisonous = false;
                        }
                        else
                        {
                            MessageBox.Show("Invalid chamaleon poison info", "Choose again", MessageBoxButtons.OK, MessageBoxIcon.Error);
                            txtSpecificData.Clear();
                            txtSpecificData.Focus();
                            return;

                        }
                    }
                    catch (Exception)
                    {
                        MessageBox.Show("Invalid chamaleon poison info", "Choose again", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        txtSpecificData.Clear();
                        txtSpecificData.Focus();
                        return;

                    }

                    break;

                case "Boa":

                    try
                    {
                        animalObject = ReptileFactory.CreateReptile(ReptileSpecies.Boa);

                    }
                    catch (NonExistentAnimalTypeException ex)
                    {

                        MessageBox.Show("Invalid animal", ex.Message, MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                    finally
                    {
                        category = CategoryType.Reptile;
                    }

                    isPoisonousString = txtSpecificData.Text.Trim();

                    try
                    {
                        //This part takes care of the gender
                        if ((GenderType)lstBoxGender.SelectedIndex == 0)
                        {

                            animalObject.Gender = GenderType.Male;
                        }
                        if (lstBoxGender.SelectedIndex == 1)
                        {
                            animalObject.Gender = GenderType.Female;
                        }
                        if (lstBoxGender.SelectedIndex == 2)
                        {
                            animalObject.Gender = GenderType.Unknown;
                        }
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show("Invalid Gender", ex.Message, MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }

                    //verify name field
                    if (string.IsNullOrEmpty(name))
                    {

                        MessageBox.Show("Invalid name", "invalid input", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        txtName.Clear();
                        txtName.Focus();
                        return;
                    }

                    try
                    {

                        //it is poisonous
                        if (txtSpecificData.Text.Trim() == "Y" || txtSpecificData.Text.Trim() == "y")
                        {
                            animalObject.Poisonous = true;

                        }

                        //not posonous
                        else if (txtSpecificData.Text.Trim() == "N" || txtSpecificData.Text.Trim() == "n")
                        {
                            animalObject.Poisonous = false;
                        }
                        else
                        {
                            MessageBox.Show("Invalid Boa poison info", "Choose again", MessageBoxButtons.OK, MessageBoxIcon.Error);
                            txtSpecificData.Clear();
                            txtSpecificData.Focus();
                            return;

                        }

                    }
                    catch (Exception)
                    {
                        MessageBox.Show("Invalid Boa poison info", "Choose again", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        txtSpecificData.Clear();
                        txtSpecificData.Focus();

                        return;

                    }

                    break;

            }

            //Set other info into the object
            if (animalObject != null)
            {

                if (lstBoxGender.SelectedIndex == 0)
                {
                    gender = GenderType.Male;
                }
                if (lstBoxGender.SelectedIndex == 1)
                {
                    gender = GenderType.Female;
                }
                if (lstBoxGender.SelectedIndex == 2)
                {
                    gender = GenderType.Unknown;
                }

                try
                {
                    int zero = 0;
                    int result;

                    animalObject.Age = Convert.ToInt32(ageString);

                    if (animalObject.Age <= 0)
                    {
                        //Divide by zero if this occurs to test catching exception
                        result = animalObject.Age / zero;

                        MessageBox.Show("Invalid age", "Error try again", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        txtAge.Clear();
                        txtAge.Focus();
                        return;
                    }

                }

                catch (InvalidValueException ex)
                {
                    MessageBox.Show("Invalid age", ex.Message, MessageBoxButtons.OK, MessageBoxIcon.Error);

                    txtAge.Clear();
                    txtAge.Focus();
                    return;
                }

                //catchin exception
                catch (Exception ex)
                {
                    MessageBox.Show("Invalid age", ex.Message, MessageBoxButtons.OK, MessageBoxIcon.Error);

                    txtAge.Clear();
                    txtAge.Focus();
                    return;
                }

                // string importantInfo = txtImportantInfo.Text.Trim();
                txtImportantInfo.Text = importantInfo;

                //assign vars for animals
                animalObject.NickName = txtName.Text;

                //set an id to each animal
                animalObject.ID = Convert.ToString(m_animalManager.GetNewID);

                //Save the object into the registry
                m_animalManager.Add(animalObject);

                //add to the special data text area
                txtSpecialData.Text = Environment.NewLine + "Important info: " + importantInfo + "   " + animalObject.GetAnimalSpecificData();

                // animalObject.NickName = String.IsNullOrEmpty(txtName.Text) ? "No name" : txtName.Text;
                animalObject.GetAnimalSpecificData();

                UpdateRegedAnimalList();

               DataBaseAccess dbAccess = new DataBaseAccess();

                //create a table
               DataTable table = dbAccess.LoadAnimalData();

                //save animal object to table
                m_animalManager.CreateAnimals(table);

            }
            else
            {
                MessageBox.Show("Error", "Invalid input no animal entered", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }