Beispiel #1
0
        private static int[] GetSum(string value)
        {
            int[] sums = new int[] { 0, 0 };

            for (int i = 0; i < 12; i++)
            {
                sums[0] += int.Parse(value[i].ToString()) * CnpjRule.CalculateBeforeLastDigitWeight(i);
                sums[1] += int.Parse(value[i].ToString()) * CnpjRule.CalculateLastDigitWeight(i);
            }
            sums[1] += int.Parse(value[12].ToString()) * 2;

            return(sums);
        }
Beispiel #2
0
        /// <summary>
        /// Validador de CNPJ
        /// </summary>
        /// <param name="value">CNPJ</param>
        /// <returns></returns>
        public static bool IsValid(string value)
        {
            string aux = RemoveMask(value);

            if (!HasValidParams(aux))
            {
                return(false);
            }

            int[] sums = GetSum(aux);

            int beforeLastDigit = CnpjRule.CalculateDigitValue(sums[0]);
            int lastDigit       = CnpjRule.CalculateDigitValue(sums[1]);

            string lastTwoDigits = beforeLastDigit.ToString() + lastDigit.ToString();

            return(aux.EndsWith(lastTwoDigits));
        }
Beispiel #3
0
        private static int[] GenerateNumbers()
        {
            List <int> generatedNambers = new List <int>();

            int totalTBeforeLastDigit = 0;
            int totalLastDigit        = 0;

            for (int i = 0; i < 12; i++)
            {
                generatedNambers.Add(_random.Next(10));
                totalTBeforeLastDigit += generatedNambers[generatedNambers.Count - 1] * CnpjRule.CalculateBeforeLastDigitWeight(i);
                totalLastDigit        += generatedNambers[generatedNambers.Count - 1] * CnpjRule.CalculateLastDigitWeight(i);
            }

            generatedNambers.Add(CnpjRule.CalculateDigitValue(totalTBeforeLastDigit));
            totalLastDigit += generatedNambers[generatedNambers.Count - 1] * 2;

            generatedNambers.Add(CnpjRule.CalculateDigitValue(totalLastDigit));

            return(generatedNambers.ToArray());
        }