コード例 #1
0
ファイル: UspsTracker.cs プロジェクト: ytechie/SimpleTracking
        /// <summary>
        ///		Determines if the specified tracking number is a USPS
        ///		tracking number by using a standard MOD 10 algorithm
        ///		to check the check digit.
        /// </summary>
        /// <param name="trackingNumber">
        ///		The tracking number to check the check digit of.
        /// </param>
        /// <returns>
        ///		True if the tracking number is the correct length and contains
        ///		a valid check digit, otherwise false.
        /// </returns>
        public static bool IsUspsTrackingNumber(string trackingNumber)
        {
            if (trackingNumber.Length != 22 && trackingNumber.Length != 20)
            {
                return(false);
            }

            return(CheckDigits.CheckMod10CheckDigit(trackingNumber));
        }
コード例 #2
0
        /// <summary>
        ///		Runs the FedEx checksum algorithm and length check on the ground tracking number.
        /// </summary>
        /// <param name="trackingNumber">
        ///		The tracking number to verify the check digit on.
        /// </param>
        /// <returns>
        ///		True if the tracking number appears to be a valid FedEx ground tracking number,
        ///		otherwise false is returned.
        /// </returns>
        public static bool IsFedExGround(string trackingNumber)
        {
            if (trackingNumber.Length != 15)
            {
                return(false);
            }

            return(CheckDigits.CheckMod10CheckDigit(trackingNumber));
        }
コード例 #3
0
        /// <summary>
        ///		Determines if the string is a valid UPS tracking number
        ///		according to the UPS checksum algorithms.
        /// </summary>
        /// <param name="trackingNumber">
        ///		The tracking number to classify as valid or invalid.
        /// </param>
        /// <returns>
        ///		A boolean indicating if the tracking number passes the
        ///		check digit calculations.
        /// </returns>
        public static bool IsValidTrackingNumber(string trackingNumber)
        {
            //Handle 1Z tracking numbers a special way
            if (trackingNumber.StartsWith("1z", true, CultureInfo.InvariantCulture))
            {
                //Trim off the 1Z
                trackingNumber = trackingNumber.Substring(2);

                //Encode the letters into numbers based on the cross-reference
                trackingNumber = ConvertToNumeric(trackingNumber);

                return(Check1ZMod10CheckDigit(trackingNumber));
            }

            if (trackingNumber.Length != 11)
            {
                return(false);
            }

            //Encode the letters into numbers based on the cross-reference
            trackingNumber = ConvertToNumeric(trackingNumber);

            return(CheckDigits.CheckMod10CheckDigit(trackingNumber));
        }