/// <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()
            {
                HudsonTransactionData copy = new HudsonTransactionData();

                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.ReturningKey       = this.ReturningKey;
                copy.UserID             = this.UserID;
                copy.CarDamaged         = this.CarDamaged;
                copy.CarCleaned         = this.CarCleaned;
                copy.CarRefueled        = this.CarRefueled;
                copy.IdentificationType = this.IdentificationType;
                copy.TransactionNumber  = this.TransactionNumber;

                //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 makeHTTPPost(HTTPPostType MethodType, string extradata1, string extradata2, string extradata3)
        {
            LocationTransactionData fakedata = new HudsonTransactionData();

            return(makeHTTPPost(MethodType, extradata1, extradata2, extradata3, ref fakedata));
        }