/// <summary> /// Francis Mingomba /// Created: 2019/04/03 /// /// Adds a vehicle checkout to database /// </summary> /// <param name="resortVehicleCheckout">resort vehicle checkout</param> /// <returns>returns an id for vehicle checkout</returns> public int AddVehicleCheckout(ResortVehicleCheckout resortVehicleCheckout) { int id; var conn = DBConnection.GetDbConnection(); const string cmdText = @"sp_create_vehicle_checkout"; var cmd = new SqlCommand(cmdText, conn) { CommandType = CommandType.StoredProcedure }; cmd.Parameters.AddWithValue("@EmployeeId", resortVehicleCheckout.EmployeeId); cmd.Parameters.AddWithValue("@DateCheckedOut", resortVehicleCheckout.DateCheckedOut); cmd.Parameters.AddWithValue("@DateReturned", (object)resortVehicleCheckout.DateReturned ?? DBNull.Value); cmd.Parameters.AddWithValue("@DateExpectedBack", resortVehicleCheckout.DateExpectedBack); cmd.Parameters.AddWithValue("@Returned", resortVehicleCheckout.Returned); cmd.Parameters.AddWithValue("@ResortVehicleId", resortVehicleCheckout.ResortVehicleId); try { conn.Open(); id = Convert.ToInt32(cmd.ExecuteScalar()); } finally { conn.Close(); } return(id); }
/// <summary> /// Francis Mingomba /// Created: 2019/04/03 /// /// Retrieves vehicle checkout from database by vehicle checkout id /// </summary> /// <param name="resortVehicleCheckoutId">resort vehicle checkout id</param> /// <returns>resort vehicle checkout object</returns> public ResortVehicleCheckout RetrieveVehicleCheckoutById(int resortVehicleCheckoutId) { ResortVehicleCheckout resortVehicleCheckout; var conn = DBConnection.GetDbConnection(); const string cmdText = @"sp_select_vehicle_checkout_by_id"; var cmd = new SqlCommand(cmdText, conn) { CommandType = CommandType.StoredProcedure }; cmd.Parameters.AddWithValue("@VehicleCheckoutId", resortVehicleCheckoutId); try { conn.Open(); SqlDataReader reader = cmd.ExecuteReader(); if (reader.HasRows) { reader.Read(); resortVehicleCheckout = new ResortVehicleCheckout() { VehicleCheckoutId = reader.GetInt32(0), EmployeeId = reader.GetInt32(1), DateCheckedOut = reader.GetDateTime(2), DateReturned = reader.IsDBNull(3) ? (DateTime?)null : reader.GetDateTime(3), DateExpectedBack = reader.GetDateTime(4), Returned = reader.GetBoolean(5), ResortVehicleId = reader.GetInt32(6) }; } else { throw new ApplicationException("Vehicle Checkout record not found."); } reader.Close(); } finally { conn.Close(); } return(resortVehicleCheckout); }
/// <summary author="Francis Mingomba" created="2019/04/24"> /// Performs vehicle checkout and changes Resort Vehicle /// Status and Available fields /// required /// </summary> /// <param name="vehicleCheckout">Vehicle to Checkout</param> public void CheckoutVehicle(ResortVehicleCheckout vehicleCheckout) { try { _resortVehicleCheckoutAccessor.AddVehicleCheckout(vehicleCheckout); CheckoutResortVehicleInResortVehiclesTable(vehicleCheckout.ResortVehicleId); } catch (Exception ex) { ExceptionLogManager.getInstance().LogException(ex); throw ex; } }
/// <summary author="Francis Mingomba" created="2019/04/03"> /// Updates Vehicle Checkout /// </summary> /// <param name="old">Old Vehicle Checkout (database copy)</param> /// <param name="newResortVehicleCheckOut">New Vehicle Checkout (new copy)</param> public void UpdateVehicleCheckouts(ResortVehicleCheckout old, ResortVehicleCheckout newResortVehicleCheckOut) { try { this.MeetsValidationCriteria(newResortVehicleCheckOut, GetResortVehicleValidationCriteria()); _resortVehicleCheckoutAccessor.UpdateVehicleCheckouts(old, newResortVehicleCheckOut); } catch (Exception ex) { ExceptionLogManager.getInstance().LogException(ex); throw ex; } }
/// <summary> /// Francis Mingomba /// Created: 2019/04/03 /// /// Updates vehicle checkout in database /// </summary> /// <param name="old">old vehicle checkout (current database copy)</param> /// <param name="newResortVehicleCheckOut">new vehicle checkout (updated copy)</param> public void UpdateVehicleCheckouts(ResortVehicleCheckout old, ResortVehicleCheckout newResortVehicleCheckOut) { var conn = DBConnection.GetDbConnection(); const string cmdText = @"sp_update_vehicle_checkout"; var cmd = new SqlCommand(cmdText, conn) { CommandType = CommandType.StoredProcedure }; cmd.Parameters.AddWithValue("@VehicleCheckoutId", old.VehicleCheckoutId); cmd.Parameters.AddWithValue("@OldEmployeeId", old.EmployeeId); cmd.Parameters.AddWithValue("@OldDateCheckedOut", old.DateCheckedOut); cmd.Parameters.AddWithValue("@OldDateReturned", (object)old.DateReturned ?? DBNull.Value); cmd.Parameters.AddWithValue("@OldDateExpectedBack", old.DateExpectedBack); cmd.Parameters.AddWithValue("@OldReturned", old.Returned); cmd.Parameters.AddWithValue("@OldResortVehicleId", old.ResortVehicleId); cmd.Parameters.AddWithValue("@NewEmployeeId", newResortVehicleCheckOut.EmployeeId); cmd.Parameters.AddWithValue("@NewDateCheckedOut", newResortVehicleCheckOut.DateCheckedOut); cmd.Parameters.AddWithValue("@NewDateReturned", (object)newResortVehicleCheckOut.DateReturned ?? DBNull.Value); cmd.Parameters.AddWithValue("@NewDateExpectedBack", newResortVehicleCheckOut.DateExpectedBack); cmd.Parameters.AddWithValue("@NewReturned", newResortVehicleCheckOut.Returned); cmd.Parameters.AddWithValue("@NewResortVehicleId", newResortVehicleCheckOut.ResortVehicleId); try { conn.Open(); int result = cmd.ExecuteNonQuery(); if (result == 0) { // .. resort property wasn't found or old and database copy did not match throw new ApplicationException("Database: Vehicle resortVehicleCheckout not updated"); } else if (result > 1) { // .. protection against change in expected stored stored procedure behaviour throw new ApplicationException("Fatal Error: More than one record updated!"); } } finally { conn.Close(); } }
public void PerformVehicleCheckout(ResortVehicleCheckout vehicleCheckout) { try { _resortVehicleCheckoutManager.CheckoutVehicle(vehicleCheckout); } catch (Exception e) { MessageBox.Show($"Failed to check out vehicle\n"); } RefreshDataGrids(); MessageBox.Show("Success"); }
/// <summary author="Francis Mingomba" created="2019/04/03"> /// Adds vehicle checkout to database /// </summary> /// <param name="checkout">vehicle checkout</param> /// <returns>id to new vehicle checkout</returns> public int AddVehicleCheckout(ResortVehicleCheckout checkout) { int checkoutId; try { this.MeetsValidationCriteria(checkout, GetResortVehicleValidationCriteria()); checkoutId = _resortVehicleCheckoutAccessor.AddVehicleCheckout(checkout); } catch (Exception ex) { ExceptionLogManager.getInstance().LogException(ex); throw ex; } return(checkoutId); }
private void BtnCheckout_OnClick(object sender, RoutedEventArgs e) { if (_caller == null) { MessageBox.Show("Unexpected usage: This form is to be " + "primarily used by FrmResortCheckout"); return; } if (!ValidateDate()) { return; } ResortVehicleCheckout vehicleCheckout; try { vehicleCheckout = new ResortVehicleCheckout { EmployeeId = _checkingOutEmployee.EmployeeID, ResortVehicleId = _resortVehicle.Id, DateCheckedOut = DateTime.Now, DateExpectedBack = (DateTime)dtReturnDate.SelectedDate }; } catch (Exception ex) { MessageBox.Show($"Unexpected error: {ex.Message}"); return; } _caller.PerformVehicleCheckout(vehicleCheckout); this.Close(); }