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); }
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; }
/// <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()); }
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 }
/// <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); }
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); } }
/// <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; } }
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; } }