/// <summary> /// This method returns an exact data copy of the current object. However, it is /// not the object itself so when this object is changed, the copy will not be. /// </summary> /// <returns></returns> public override LocationTransactionData HardCopy() { OregonStateUTransactionData copy = new OregonStateUTransactionData(); copy.AccessCode = this.AccessCode; copy.CardName = this.CardName; copy.CardNumber = this.CardNumber; copy.BoxNumber = this.BoxNumber; copy.DoorOpened = this.DoorOpened; copy.LockLocation = this.LockLocation; copy.OperatorNumber = this.OperatorNumber; copy.Odometer = this.Odometer; copy.ReturningKey = this.ReturningKey; copy.UserID = this.UserID; //The object list must be copied piece by piece or both objects will //point to the same ObjectList. for (int i = 0; i < this.ObjectList.Count; i++) { copy.ObjectList[i] = (TransactionDataObject)this.ObjectList[i].Clone(); } return(copy); }
internal override bool validateOdometerReading(LocationData.LocationTransactionData transaction) { int intReturnValue = 0; OregonStateUTransactionData thistransaction = new OregonStateUTransactionData(); thistransaction = (OregonStateUTransactionData)transaction; SqlCommand comm = new SqlCommand(); //This is needed because there is no public contructor for SqlParameterCollection SqlParameterCollection Parameters = comm.Parameters; SqlParameterCollection ReturnParameters; try { //Add Input Params Parameters.Add(Program.SqlManager.CreateParameter("ResvNum", ParameterDirection.Input, thistransaction.AccessCode, SqlDbType.VarChar)); Parameters.Add(Program.SqlManager.CreateParameter("OperNum", ParameterDirection.Input, thistransaction.OperatorNumber, SqlDbType.VarChar)); Parameters.Add(Program.SqlManager.CreateParameter("KioskDateIn", ParameterDirection.Input, String.Format("{0:yyyy/MM/dd HH:mm:ss}", DateTime.Now), SqlDbType.VarChar)); Parameters.Add(Program.SqlManager.CreateParameter("KioskNumIn", ParameterDirection.Input, Program.KIOSK_ID.PadLeft(4, '0'), SqlDbType.VarChar)); Parameters.Add(Program.SqlManager.CreateParameter("MileageEnd", ParameterDirection.Input, thistransaction.Odometer, SqlDbType.Int)); Parameters.Add(Program.SqlManager.CreateParameter("MileageDiff", ParameterDirection.Input, Program.MILEAGE_DIFFERENCE_ALLOWED, SqlDbType.Int)); //Add Return Value Parameters.Add(Program.SqlManager.CreateParameter("Return_Val", ParameterDirection.ReturnValue, 0, SqlDbType.Int)); ReturnParameters = Program.SqlManager.SqlStoredProcedure("SPA_TestMileageIn", Parameters); if (ReturnParameters == null) //Error msg already given by SQLManager { return(false); } //set the return code (of the stored procedure) to the results sent back. intReturnValue = (int)ReturnParameters["Return_Val"].Value; switch (intReturnValue) { case 1: //Success Program.logEvent("Odometer Reading Verified Successfully"); return(true); case 10: //Failure Program.ShowErrorMessage("Sorry Your Entry Did\r\nNot Find A Match\r\nPlease Re-Enter Or\r\nCall " + Program.SERVICE_MANAGER_NUMBER, 5000); Program.logEvent("Failure - can't find transaction data row - perhaps RES_KEY table reservation row does not exist"); Program.SqlManager.ErrorDatabaseEntry(transaction.AccessCode, "", DateTime.Now.ToString(), Program.KIOSK_ID, 0, "Failure - can't find transaction data row - perhaps RES_KEY table reservation row does not exist", "", 0); return(false); case 11: //Failure here is now deemed unnecessary. A note is made of it and we move on. 4/26/13 Program.logEvent("Odometer Reading: Was too far based on MILEAGE_DIFFERENCE_ALLOWED or it was less than or equal to the previous odometer reading"); //MessageStrings.OdometerError(); //Thread.Sleep(4000); //Program.logEvent("Odometer Reading Rejected: Either it was too far based on MILEAGE_DIFFERENCE_ALLOWED or it was less than or equal to the previous odometer reading"); Program.SqlManager.ErrorDatabaseEntry(transaction.AccessCode, "", DateTime.Now.ToString(), Program.KIOSK_ID, 0, "Odometer Reading Rejected: Either it was too far based on MILEAGE_DIFFERENCE_ALLOWED or it was less than or equal to the previous odometer reading", "", 0); return(true); } } catch (Exception ex) { //An application exception was thrown - process/display exception. Program.logEvent("GENERAL EXCEPTION:" + "ReservationConfirmation: " + ex.Message); Program.SqlManager.ErrorDatabaseEntry(transaction.AccessCode, "", DateTime.Now.ToString(), Program.KIOSK_ID, 0, "GENERAL EXCEPTION:" + "ReservationConfirmation: " + ex.Message, "", 0); return(false); } return(false); }
private bool getBoxNum(ref LocationTransactionData transaction, ref YesNoForm ReservationConfirmScreen) { // //Put new stored procedure into place //Confirm Operator Number //Set BoxNumber //Display Destination & Return Time // int intReturnValue = 0; OregonStateUTransactionData transData = (OregonStateUTransactionData)transaction; SqlCommand comm = new SqlCommand();//This is needed because there is no public contructor for SqlParameterCollection SqlParameterCollection Parameters = comm.Parameters; SqlParameterCollection ReturnParameters; try { //Add inputs Parameters.Add(Program.SqlManager.CreateParameter("ResvNum", ParameterDirection.Input, transData.AccessCode, SqlDbType.VarChar)); Parameters.Add(Program.SqlManager.CreateParameter("OperNum", ParameterDirection.Input, transData.OperatorNumber, SqlDbType.VarChar)); Parameters.Add(Program.SqlManager.CreateParameter("KioskDateOut", ParameterDirection.Input, String.Format("{0:yyyy/MM/dd HH:mm:ss}", DateTime.Now), SqlDbType.VarChar)); Parameters.Add(Program.SqlManager.CreateParameter("KioskNumOut", ParameterDirection.Input, Program.KIOSK_ID.PadLeft(4, '0'), SqlDbType.VarChar)); Parameters.Add(Program.SqlManager.CreateParameter("KeyNumMax", ParameterDirection.Input, Program.NUMBER_RELAYS, SqlDbType.Int)); Parameters.Add(Program.SqlManager.CreateParameter("KeyMode", ParameterDirection.Input, transaction.ReturningKey, SqlDbType.Int)); //Add Outputs & Return Parameters.Add(Program.SqlManager.CreateParameter("KeyNumOut", ParameterDirection.Output, 0, SqlDbType.Int)); Parameters.Add(Program.SqlManager.CreateParameter("DestCity", ParameterDirection.Output, "", SqlDbType.VarChar, 20)); Parameters.Add(Program.SqlManager.CreateParameter("DueDate", ParameterDirection.Output, "", SqlDbType.VarChar, 20)); Parameters.Add(Program.SqlManager.CreateParameter("Return_Val", ParameterDirection.ReturnValue, 0, SqlDbType.Int)); ReturnParameters = Program.SqlManager.SqlStoredProcedure("SPA_GetBoxNum", Parameters); if (ReturnParameters == null) //Error msg already given by SQLManager { return(false); } //set the return code (of the stored procedure) to the results sent back. intReturnValue = (int)ReturnParameters["Return_Val"].Value; Program.logEvent("Show Reservation Data: Return Value - " + intReturnValue); switch (intReturnValue) { case 1: //Success Program.logEvent("Show Reservation Data: Box Number - " + (int)ReturnParameters["KeyNumOut"].Value); transaction.BoxNumber = (int)ReturnParameters["KeyNumOut"].Value; Program.logEvent("Destination City: " + (string)ReturnParameters["DestCity"].Value); Program.logEvent("Due Date: " + (string)ReturnParameters["DueDate"].Value); if (!transaction.ReturningKey) { //return time prep string dt = (string)ReturnParameters["DueDate"].Value; string[] datetime = dt.Replace(" ", " ").Split(' '); Program.logEvent("ScreenPrint Datetime0:" + datetime[0]); Program.logEvent("ScreenPrint Datetime1:" + datetime[1]); Program.logEvent("ScreenPrint Datetime2:" + datetime[2]); Program.logEvent("ScreenPrint Datetime3:" + datetime[3]); ReservationConfirmScreen.setFormMessage("Trip To:\r\n" + (string)ReturnParameters["DestCity"].Value + "\r\nDue Back:\r\n" + datetime[0] + '-' + datetime[1] + '-' + datetime[2].Remove(0, 2) + ' ' + datetime[3].Remove(datetime[3].Length - 2, 2)); Program.logEvent("Reservation Confirmation In Progress"); } return(true); case 5: //Failure - Program.ShowErrorMessage("Sorry Your Entry Did\r\nNot Find A Match\r\nPlease Re-Enter Or\r\nCall " + Program.SERVICE_MANAGER_NUMBER, 5000); Program.logEvent("Failure - can't find data - perhaps RES_MAIN table reservation row does not exist"); Program.SqlManager.ErrorDatabaseEntry(transaction.AccessCode, "", DateTime.Now.ToString(), Program.KIOSK_ID, 0, "Failure - can't find data - perhaps RES_MAIN table reservation row does not exist", "", 0); return(false); case 6: //Failure - Program.ShowErrorMessage("Sorry Your Entry Did\r\nNot Find A Match\r\nPlease Re-Enter Or\r\nCall " + Program.SERVICE_MANAGER_NUMBER, 5000); Program.logEvent("Failure - Key # not in range"); Program.SqlManager.ErrorDatabaseEntry(transaction.AccessCode, "", DateTime.Now.ToString(), Program.KIOSK_ID, 0, "Failure - Key # not in range", "", 0); return(false); } } catch (Exception ex) { //An application exception was thrown - process/display exception. Program.logEvent("GENERAL EXCEPTION:" + "ReservationConfirmation: " + ex.Message); Program.SqlManager.ErrorDatabaseEntry(transaction.AccessCode, "", DateTime.Now.ToString(), Program.KIOSK_ID, 0, "GENERAL EXCEPTION:" + "ReservationConfirmation: " + ex.Message, "", 0); return(false); } return(true); }