예제 #1
0
            /// <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);
            }
예제 #2
0
        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);
        }
예제 #3
0
        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);
        }