public IList <MessageString> ValidateTrackingNumber()
        {
            TrackingNumber = StringHelper.TrimWhitespace(TrackingNumber);

            if (String.IsNullOrEmpty(TrackingNumber))
            {
                return new List <MessageString>()
                       {
                           MessageString.Error("Tracking number is empty")
                       }
            }
            ;

            if (Carrier == ShippingServiceUtils.USPSCarrier)
            {
                if (TrackingNumber.Length != 22)
                {
                    return new List <MessageString>()
                           {
                               MessageString.Error("Invalid tracking number format")
                           }
                }
                ;

                var checkDigitResult = TrackingHelper.GetCheckDigit(TrackingNumber);
                if (checkDigitResult.IsFail)
                {
                    return new List <MessageString>()
                           {
                               MessageString.Error(checkDigitResult.Message)
                           }
                }
                ;

                if (checkDigitResult.Data.ToString()[0] != TrackingNumber.Last())
                {
                    return new List <MessageString>()
                           {
                               MessageString.Error("Invalid check sum. Expected: " + checkDigitResult.Data)
                           }
                }
                ;
            }

            return(new List <MessageString>());
        }