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); }
/// <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)); }
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()); }