Example #1
0
        public void TestUpdateKennelRecordGoodValue()
        {
            //Arrange
            IAnimalKennelManager kennelManager = new AnimalKennelManager(_kennelAccessor);
            AnimalKennel         oldKennel     = new AnimalKennel()
            {
                AnimalKennelID      = 1,
                AnimalID            = 1,
                UserID              = 1,
                AnimalKennelInfo    = "info info info",
                AnimalKennelDateIn  = new DateTime(2019, 5, 24),
                AnimalKennelDateOut = new DateTime(2020, 2, 24)
            };

            AnimalKennel newKennel = new AnimalKennel()
            {
                AnimalKennelID      = 1,
                AnimalID            = 1,
                UserID              = 1,
                AnimalKennelInfo    = "new new new new",
                AnimalKennelDateIn  = new DateTime(2019, 5, 24),
                AnimalKennelDateOut = new DateTime(2020, 2, 24)
            };

            bool expectedResult = true;

            //Act
            bool actualResult = kennelManager.EditKennelRecord(oldKennel, newKennel);

            //Assert
            Assert.AreEqual(expectedResult, actualResult);
        }
Example #2
0
        public void TestUpdateKennelRecordBadValue()
        {
            // Arrange
            IAnimalKennelManager kennelManager = new AnimalKennelManager(_kennelAccessor);
            AnimalKennel         oldKennel     = new AnimalKennel()
            {
                AnimalKennelID      = 0,
                AnimalID            = 1,
                UserID              = 1,
                AnimalKennelInfo    = "info info",
                AnimalKennelDateIn  = new DateTime(2019, 5, 24),
                AnimalKennelDateOut = new DateTime(2020, 2, 24)
            };

            AnimalKennel newKennel = new AnimalKennel()
            {
                AnimalKennelID      = 0,
                AnimalID            = 1,
                UserID              = 1,
                AnimalKennelInfo    = "new new new new",
                AnimalKennelDateIn  = new DateTime(2019, 5, 24),
                AnimalKennelDateOut = new DateTime(2020, 2, 24)
            };

            //Act
            bool actualResult = kennelManager.EditKennelRecord(oldKennel, newKennel);
        }
        /// <summary>
        /// Creator: Ben Hanna
        /// Created: 3/18/2020
        /// Approver: Carl Davis, 3/19/2020
        /// Approver:
        ///
        /// Adds a date out to the object in the database
        /// </summary>
        /// <remarks>
        /// Updater:
        /// Updated:
        /// Update:
        /// </remarks>
        /// <param name="kennel"></param>
        /// <returns></returns>
        public int AddDateOut(AnimalKennel kennel)
        {
            int rows = 0;

            var conn = DBConnection.GetConnection();
            var cmd  = new SqlCommand("sp_add_date_out", conn);

            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.AddWithValue("@AnimalKennelID", kennel.AnimalKennelID);
            cmd.Parameters.AddWithValue("@AnimalKennelDateOut", kennel.AnimalKennelDateOut);

            try
            {
                conn.Open();
                rows = cmd.ExecuteNonQuery();
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                conn.Close();
            }
            return(rows);
        }
        /// <summary>
        /// Creator: Ben Hanna
        /// Created: 2/12/2020
        /// Approver: Carl Davis, 2/14/2020
        /// Approver: Chuck Baxter, 2/14/2020
        ///
        /// Adds a kennel record to the database
        /// </summary>
        /// <remarks>
        /// Updater:
        /// Updated:
        /// Update:
        /// </remarks>
        /// <param name="kennel"> Kennel object </param>
        /// <returns> An integer that represents the number of rows effected. Should equal 1 if method succeeded. </returns>
        public int InsertKennelRecord(AnimalKennel kennel)
        {
            int animalKennelID = 0;

            var conn = DBConnection.GetConnection();

            var cmd = new SqlCommand("sp_insert_kennel_record", conn);

            cmd.CommandType = CommandType.StoredProcedure;

            cmd.Parameters.AddWithValue("@AnimalID", kennel.AnimalID);
            cmd.Parameters.AddWithValue("@UserID", kennel.UserID);
            cmd.Parameters.AddWithValue("@AnimalKennelInfo", kennel.AnimalKennelInfo);
            cmd.Parameters.AddWithValue("@AnimalKennelDateIn", kennel.AnimalKennelDateIn);

            try
            {
                conn.Open();
                animalKennelID = Convert.ToInt32(cmd.ExecuteScalar());
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                conn.Close();
            }

            return(animalKennelID);
        }
 /// <summary>
 /// Creator: Ben Hanna
 /// Created: 3/18/2020
 /// Approver: Carl Davis, 3/19/2020
 /// Approver:
 ///
 /// Chnges the value of the dateout field
 /// </summary>
 /// <remarks>
 /// Updater:
 /// Updated:
 /// Update:
 /// </remarks>
 /// <param name="kennel"></param>
 /// <returns> True represents a successful action </returns>
 public bool SetDateOut(AnimalKennel kennel)
 {
     try
     {
         return(1 == _kennelAccessor.AddDateOut(kennel));
     }
     catch (Exception ex)
     {
         throw new ApplicationException("Date update failed", ex);
     }
 }
        /// <summary>
        /// Creator: Ben Hanna
        /// Created: 2/22/2020
        /// Approver: Steven Cardona
        /// Approver:
        /// 
        /// Return to previous page.
        /// </summary>
        /// <remarks>
        /// Updater: Ben Hanna
        /// Updated: 3/19/2020
        /// Update: Disables the AddDatOutButton now  
        /// Approver: Carl Davis, 3/19/2020
        /// </remarks>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void BtnCancelKennelAdd_Click(object sender, RoutedEventArgs e)
        {
            canViewKennelList.Visibility = Visibility.Visible;
            canAddRecord.Visibility = Visibility.Hidden;
            ResetFields();

            addMode = false;
            RefreshData();
            oldKennel = null;
            canView.Visibility = Visibility.Visible;
        }
Example #7
0
        /// <summary>
        /// Creator: Ben Hanna
        /// Created: 3/18/2020
        /// Approver: Carl Davis, 3/19/2020
        /// Approver:
        ///
        /// Simulates adding a date to the record
        /// </summary>
        /// <remarks>
        /// Updater:
        /// Updated:
        /// Update:
        /// </remarks>
        /// <param name="kennel"></param>
        /// <returns></returns>
        public int AddDateOut(AnimalKennel kennel)
        {
            int kennelIndex = records.FindIndex(k => k.AnimalKennelID == kennel.AnimalKennelID);

            AnimalKennel animalKennel = records[kennelIndex];

            animalKennel.AnimalKennelDateOut = kennel.AnimalKennelDateOut;
            records[kennelIndex]             = animalKennel;

            return((from k in records
                    where k.AnimalKennelID == kennel.AnimalKennelID
                    select k).Count());
        }
Example #8
0
        public void TestAddKennelRecordFail()
        {
            //Arrange
            IAnimalKennelManager kennelManager = new AnimalKennelManager(_kennelAccessor);
            AnimalKennel         kennel        = new AnimalKennel()
            {
                AnimalID = 1, AnimalKennelID = 0, UserID = 1, AnimalKennelInfo = "Info", AnimalKennelDateIn = DateTime.Now
            };

            //Act
            kennelManager.AddKennelRecord(kennel);
            //Assert
        }
Example #9
0
        /// <summary>
        /// Creator: Ben Hanna
        /// Created: 2/12/2020
        /// Approver: Carl Davis, 2/14/2020
        /// Approver: Chuck Baxter, 2/14/2020
        ///
        /// Simulates adding a kennel record to the database.
        /// Will intentionally throw an exception if the kennel ID isn't 1.
        /// </summary>
        /// <remarks>
        /// Updater: Zach Behrensmeyer
        /// Updated: 4/9/2020
        /// Update: Updated return value so we weren't using a magic number
        /// </remarks>
        /// <param name="kennel"></param>
        /// <returns> Represents the number of rows effected.</returns>
        public int InsertKennelRecord(AnimalKennel kennel)
        {
            int result = 0;

            if (kennel.AnimalKennelID == 1)
            {
                records.Add(kennel);
                result = 1;
            }
            else
            {
                throw new Exception("Test exception");
            }
            return(result);
        }
        /// <summary>
        /// Creator: Ben Hanna
        /// Created: 2/12/2020
        /// Approver: Carl Davis, 2/14/2020
        /// Approver: Chuck Baxter, 2/14/2020
        ///
        /// Adds a new kennel record to the database
        /// </summary>
        /// <remarks>
        /// Updater:
        /// Updated:
        /// Update:
        /// </remarks>
        /// <param name="kennel"></param>
        /// <returns> returns True if the method was successful </returns>
        public bool AddKennelRecord(AnimalKennel kennel)
        {
            bool result = false;

            try
            {
                result = _kennelAccessor.InsertKennelRecord(kennel) > 0;
            }
            catch (Exception ex)
            {
                throw new ApplicationException("Record not added.", ex);
            }

            return(result);
        }
Example #11
0
        public void TestAddKennelRecordSuccess()
        {
            //Arrange
            IAnimalKennelManager kennelManager  = new AnimalKennelManager(_kennelAccessor);
            const bool           expectedResult = true;
            AnimalKennel         kennel         = new AnimalKennel()
            {
                AnimalID = 1, AnimalKennelID = 1, UserID = 1, AnimalKennelInfo = "Info", AnimalKennelDateIn = DateTime.Now
            };

            //Act
            bool actualResult = kennelManager.AddKennelRecord(kennel);

            //Assert
            Assert.AreEqual(expectedResult, actualResult);
        }
        /// <summary>
        /// Creator: Ben Hanna
        /// Created: 3/17/2020
        /// Approver: Carl Davis, 3/19/2020
        /// Approver:
        ///
        /// Updates a single kennel record
        /// </summary>
        /// <remarks>
        /// Updater:
        /// Updated:
        /// Update:
        ///
        /// </remarks>
        /// <param name="oldKennel"></param>
        /// <param name="newKennel"></param>
        /// <returns> Number of database rows effected. Should always be 1. </returns>
        public int UpdateKennelRecord(AnimalKennel oldKennel, AnimalKennel newKennel)
        {
            int rows = 0;

            // connecttion
            var conn = DBConnection.GetConnection();

            // cmd
            var cmd = new SqlCommand("sp_update_kennel_record");

            cmd.Connection  = conn;
            cmd.CommandType = CommandType.StoredProcedure;

            //Automatically assumes the value is an int32. Decimal and money are more ambiguous
            cmd.Parameters.AddWithValue("@AnimalKennelID", oldKennel.AnimalKennelID);

            cmd.Parameters.AddWithValue("@NewAnimalID", newKennel.AnimalID);
            cmd.Parameters.AddWithValue("@NewUserID", newKennel.UserID);
            cmd.Parameters.AddWithValue("@NewAnimalKennelInfo", newKennel.AnimalKennelInfo);
            cmd.Parameters.AddWithValue("@NewAnimalKennelDateIn", newKennel.AnimalKennelDateIn);
            cmd.Parameters.AddWithValue("@NewAnimalKennelDateOut", newKennel.AnimalKennelDateOut);


            cmd.Parameters.AddWithValue("@OldAnimalID", oldKennel.AnimalID);
            cmd.Parameters.AddWithValue("@OldUserID", oldKennel.UserID);
            cmd.Parameters.AddWithValue("@OldAnimalKennelInfo", oldKennel.AnimalKennelInfo);
            cmd.Parameters.AddWithValue("@OldAnimalKennelDateIn", oldKennel.AnimalKennelDateIn);
            cmd.Parameters.AddWithValue("@OldAnimalKennelDateOut", oldKennel.AnimalKennelDateOut);

            try
            {
                conn.Open();
                rows = cmd.ExecuteNonQuery();
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                conn.Close();
            }

            return(rows);
        }
 /// <summary>
 /// Creator: Ben Hanna
 /// Created: 3/18/2020
 /// Approver: Carl Davis, 3/19/2020
 /// Approver:
 ///
 /// Updates a single kennel record in the database
 /// </summary>
 /// <remarks>
 /// Updater:
 /// Updated:
 /// Update:
 /// </remarks>
 /// <param name="oldKennel"></param>
 /// <param name="newKennel"></param>
 /// <returns> Returns true if record was updated successfully </returns>
 public bool EditKennelRecord(AnimalKennel oldKennel, AnimalKennel newKennel)
 {
     try
     {
         if (oldKennel.AnimalKennelDateOut != null)
         {
             return(1 == _kennelAccessor.UpdateKennelRecord(oldKennel, newKennel));
         }
         else
         {
             return(1 == _kennelAccessor.UpdateKennelRecordNoDateOut(oldKennel, newKennel));
         }
     }
     catch (Exception ex)
     {
         throw new ApplicationException("Update Failed: Kennel Record not Found", ex);
     }
 }
Example #14
0
        /// <summary>
        /// Creator: Ben Hanna
        /// Created: 3/17/2020
        /// Approver: Carl Davis, 3/19/2020
        /// Approver:
        ///
        /// Same method as above. Just here to make sure the interface works
        /// </summary>
        /// <remarks>
        /// Updater: Zach Behrensmeyer
        /// Updated: 4/9/2020
        /// Update: Updated return value so we weren't using a magic number
        /// </remarks>
        /// <param name="oldKennel"></param>
        /// <param name="newKennel"></param>
        /// <returns></returns>
        public int UpdateKennelRecordNoDateOut(AnimalKennel oldKennel, AnimalKennel newKennel)
        {
            int          result = 0;
            AnimalKennel kennel = null;

            kennel = (records.Find(n => n.AnimalKennelID == oldKennel.AnimalKennelID));

            if (kennel != null)
            {
                records[(oldKennel.AnimalKennelID - 1)] = newKennel;
                result = 1;
            }
            else
            {
                throw new ApplicationException("data not found");
            }
            return(result);
        }
        /// <summary>
        /// Creator: Ben Hanna
        /// Created: 3/12/2020
        /// Approver: Carl Davis, 3/13/2020
        /// Approver:
        ///
        /// Gets all kennel records and returns them to the up layers
        /// </summary>
        /// <remarks>
        /// Updater:
        /// Updated:
        /// Update:
        ///
        /// </remarks>
        /// <returns> a list of all kennel records in the DB </returns>
        public List <AnimalKennel> RetriveAllAnimalKennels()
        {
            List <AnimalKennel> kennels = new List <AnimalKennel>();

            var conn = DBConnection.GetConnection();
            var cmd  = new SqlCommand("sp_select_all_kennel_records");

            cmd.Connection  = conn;
            cmd.CommandType = CommandType.StoredProcedure;

            try
            {
                conn.Open();
                var reader = cmd.ExecuteReader();

                if (reader.HasRows)
                {
                    while (reader.Read())
                    {
                        var note = new AnimalKennel();
                        note.AnimalKennelID      = reader.GetInt32(0);
                        note.AnimalID            = reader.GetInt32(1);
                        note.UserID              = reader.GetInt32(2);
                        note.AnimalKennelInfo    = reader.GetString(3);
                        note.AnimalKennelDateIn  = reader.GetDateTime(4);
                        note.AnimalKennelDateOut = reader[5] as DateTime?;
                        kennels.Add(note);
                    }
                }
                reader.Close();
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                conn.Close();
            }

            return(kennels);
        }
        /// <summary>
        /// Creator: Ben Hanna
        /// Created: 3/13/2020
        /// Approver:  Carl Davis, 3/13/2020
        /// Approver: 
        /// 
        /// Selects a single kennel record for viewing.
        /// </summary>
        /// <remarks>
        /// Updater:
        /// Updated:
        /// Update:
        /// </remarks>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void dgAllKennels_MouseDoubleClick(object sender, MouseButtonEventArgs e)
        {
            oldKennel = (AnimalKennel)dgAllKennels.SelectedItem;

            txtAnimalID.Text = oldKennel.AnimalID.ToString();
            txtKennelID.Text = oldKennel.AnimalKennelID.ToString();
            txtUserID.Text = oldKennel.UserID.ToString();
            txtKennelInfo.Text = oldKennel.AnimalKennelInfo.ToString();
            txtDateIn.Text = oldKennel.AnimalKennelDateIn.ToString();
            txtDateOut.Text = oldKennel.AnimalKennelDateOut.ToString();

            BtnSubmitkennelAdd.Visibility = Visibility.Hidden;
            BtnEditKennelAdd.Visibility = Visibility.Visible;

            lblTitle.Content = "View Kennel Record Details";

            canAddRecord.Visibility = Visibility.Visible;
            canView.Visibility = Visibility.Hidden;
            if (oldKennel.AnimalKennelDateOut == null)
            {
                btnAddDateOut.Visibility = Visibility.Visible;
            }
        }
Example #17
0
        public void TestAddDateOut()
        {
            // arrange
            IAnimalKennelManager kennelManager = new AnimalKennelManager(_kennelAccessor);

            AnimalKennel kennel = new AnimalKennel()
            {
                AnimalKennelID     = 2,
                AnimalID           = 1,
                UserID             = 1,
                AnimalKennelInfo   = "info info info",
                AnimalKennelDateIn = new DateTime(2020, 2, 25)
            };

            bool expectedResult = true;

            // act
            kennel.AnimalKennelDateOut = DateTime.Now;

            bool actualResult = kennelManager.SetDateOut(kennel);

            // assert
            Assert.AreEqual(expectedResult, actualResult);
        }
        /// <summary>
        /// Creator: Ben Hanna
        /// Created: 2/22/2020
        /// Approver: Steven Cardona
        /// Approver:
        /// 
        /// Add animal kennel location record to the database 
        /// </summary>
        /// <remarks>
        /// Updater: Ben Hanna
        /// Updated: 3/17/2020
        /// Update: Added an extra code path for editing as opposed to adding.
        /// </remarks>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void BtnSubmitKennelAdd_Click(object sender, RoutedEventArgs e)
        {
            int userID;
            int animalID;

            if (String.IsNullOrEmpty(txtAnimalID.Text))
            {
                MessageBox.Show("Please enter the animal's ID");
                return;
            }
            if (String.IsNullOrEmpty(txtUserID.Text))
            {
                MessageBox.Show("Please enter the User's ID");
                return;
            }
            if (!int.TryParse(txtAnimalID.Text, out animalID))
            {
                MessageBox.Show("ID fields may only contain whole numbers.");
                return;
            }
            else if (!int.TryParse(txtUserID.Text, out userID))
            {
                MessageBox.Show("ID fields may only contain whole numbers.");
                return;
            }
            else
            {

                AnimalKennel newKennel = new AnimalKennel()
                {
                    AnimalID = animalID,
                    UserID = userID,
                    AnimalKennelInfo = txtKennelInfo.Text
                };

                try
                {
                    if (addMode)
                    {
                        newKennel.AnimalKennelDateIn = DateTime.Now;
                        _kennelManager.AddKennelRecord(newKennel);
                        WPFErrorHandler.SuccessMessage("Kennel Record Successfully Added");
                    }
                    else
                    {
                        newKennel.AnimalKennelDateIn = oldKennel.AnimalKennelDateIn;
                        newKennel.AnimalKennelDateOut = oldKennel.AnimalKennelDateOut;
                        _kennelManager.EditKennelRecord(oldKennel, newKennel);
                        WPFErrorHandler.SuccessMessage("Kennel Record Successfully Edited");
                    }

                    ResetFields();
                }
                catch (Exception ex)
                {
                    WPFErrorHandler.ErrorMessage(ex.Message + "\n\n" + ex.InnerException.Message);
                }
                finally
                {
                    oldKennel = null;
                    RefreshData();

                }
                canView.Visibility = Visibility.Visible;
                canAddRecord.Visibility = Visibility.Hidden;
            }
        }