Esempio n. 1
0
        /// <summary>
        /// Checks if a string value is a valid CPF representation
        /// </summary>
        /// <param name="value">a CPF string to be checked</param>
        /// <param name="punctuation">the punctuation setting to
        /// how validation must be handled</param>
        /// <returns>true if CPF string is valid; false otherwise</returns>
        internal static bool Validate(string value, CpfPunctuation punctuation)
        {
            if (StringHelper.IsNullOrWhiteSpace(value))
            {
                return(false);
            }

            if (!Regex.IsMatch(value, CpfHelper.regexValidations[punctuation]))
            {
                return(false);
            }

            value = CpfHelper.Sanitize(value);

            if (CpfHelper.IsSameDigit(value))
            {
                return(false);
            }

            var inputDigit1 = int.Parse(
                value.Substring(9, 1),
                CultureInfo.InvariantCulture);

            var inputDigit2 = int.Parse(
                value.Substring(10, 1),
                CultureInfo.InvariantCulture);

            var calcDigit1 = CpfHelper.CreateChecksum(value.Substring(0, 9));
            var calcDigit2 = CpfHelper.CreateChecksum(value.Substring(0, 10));

            return(inputDigit1 == calcDigit1 && inputDigit2 == calcDigit2);
        }
Esempio n. 2
0
        /// <summary>
        /// Initializes a new instance of the <see cref="Cpf"/> class.
        /// </summary>
        /// <param name="value">a valid CPF string.</param>
        /// <param name="punctuation">the punctuation setting to
        /// how validation must be handled.</param>
        public Cpf(string value, CpfPunctuation punctuation)
        {
            if (StringHelper.IsNullOrWhiteSpace(value))
            {
                throw new ArgumentException("O CPF não pode ser nulo ou branco");
            }

            if (!CpfHelper.Validate(value, punctuation))
            {
                throw new ArgumentException("O CPF não é válido");
            }

            this.parsedValue = CpfHelper.Sanitize(value);

            this.Punctuation = punctuation;
        }
Esempio n. 3
0
        /// <summary>
        /// Completes a partial CPF string by appending a valid checksum trailing
        /// </summary>
        /// <param name="value">a partial CPF string with or without punctuation</param>
        /// <returns>a CPF string with a valid checksum trailing</returns>
        internal static string Complete(string value)
        {
            if (StringHelper.IsNullOrWhiteSpace(value))
            {
                throw new ArgumentException("O CPF é inválido");
            }

            value = CpfHelper.Sanitize(value);

            if (!Regex.IsMatch(value, @"\d{9}"))
            {
                throw new ArgumentException("O CPF é inválido");
            }

            int digit1 = CpfHelper.CreateChecksum(value);
            int digit2 = CpfHelper.CreateChecksum(value + digit1.ToString());

            return(value + digit1.ToString() + digit2.ToString());
        }
Esempio n. 4
0
 /// <summary>
 /// Completes a partial CPF string by appending a valid checksum trailing.
 /// </summary>
 /// <param name="value">a partial CPF string
 /// with or without punctuation.</param>
 /// <returns>a CPF string with a valid checksum trailing.</returns>
 public static string Complete(string value)
 {
     return(CpfHelper.Complete(value));
 }
Esempio n. 5
0
 /// <summary>
 /// Checks if a string value is a valid CPF representation.
 /// </summary>
 /// <param name="value">a CPF string to be checked.</param>
 /// <param name="punctuation">the punctuation setting to
 /// how validation must be handled.</param>
 /// <returns>true if CPF string is valid; otherwise, false.</returns>
 public static bool Validate(string value, CpfPunctuation punctuation)
 {
     return(CpfHelper.Validate(value, punctuation));
 }
Esempio n. 6
0
 /// <summary>
 /// Checks if a string value is a valid CPF representation.
 /// </summary>
 /// <param name="value">a CPF string to be checked.</param>
 /// <returns>true if CPF string is valid; false otherwise.</returns>
 public static bool Validate(string value)
 {
     return(CpfHelper.Validate(value, CpfPunctuation.Loose));
 }