예제 #1
0
        private IList <IValidationMessage> GetInvalidValues(string tituloDeEleitor)
        {
            IList <IValidationMessage> errors = new List <IValidationMessage>();

            if (tituloDeEleitor != null)
            {
                if (isFormatted && !FORMATED.IsMatch(tituloDeEleitor))
                {
                    errors.Add(messageProducer.GetMessage(new TituloEleitoralError(TituloEleitoralErrorEnum.INVALID_FORMAT)));
                }

                string unformatedTitulo = null;
                try
                {
                    unformatedTitulo = new TituloEleitoralFormatter().UnFormat(tituloDeEleitor);
                }
                catch (ArgumentException)
                {
                    errors.Add(messageProducer.GetMessage(new TituloEleitoralError(TituloEleitoralErrorEnum.INVALID_DIGITS)));
                    return(errors);
                }
                Regex tituloSemFormatacao = new Regex("[0-9]*");

                if (unformatedTitulo.Length != 12 || !tituloSemFormatacao.IsMatch("[0-9]*"))
                {
                    errors.Add(messageProducer.GetMessage(new TituloEleitoralError(TituloEleitoralErrorEnum.INVALID_DIGITS)));
                }

                if (HasCodigoDeEstadoInvalido(unformatedTitulo))
                {
                    errors.Add(messageProducer.GetMessage(new TituloEleitoralError(TituloEleitoralErrorEnum.INVALID_CODIGO_DE_ESTADO)));
                }
                else
                {
                    string tituloSemDigito = unformatedTitulo.Substring(0, unformatedTitulo.Length - 2);
                    string digitos         = unformatedTitulo.Substring(unformatedTitulo.Length - 2);

                    string digitosCalculados = CalculaDigitos(tituloSemDigito);

                    if (!digitos.Equals(digitosCalculados))
                    {
                        errors.Add(messageProducer.GetMessage(new TituloEleitoralError(TituloEleitoralErrorEnum.INVALID_CHECK_DIGITS)));
                    }
                }
            }
            return(errors);
        }
예제 #2
0
        private IList <IValidationMessage> GetInvalidValues(string cpf)
        {
            IList <IValidationMessage> errors = new List <IValidationMessage>();

            if (!string.IsNullOrEmpty(cpf))
            {
                if (isFormatted != FORMATED.Match(cpf).Success)
                {
                    errors.Add(messageProducer.GetMessage(new CPFError(CPFErrorEnum.INVALID_FORMAT)));
                }

                string unformatedCpf = string.Empty;
                try
                {
                    unformatedCpf = new CPFFormatter().UnFormat(cpf);
                }
                catch (ArgumentException)
                {
                    errors.Add(messageProducer.GetMessage(new CPFError(CPFErrorEnum.INVALID_DIGITS)));
                    return(errors);
                }

                var cpfRegex = new Regex("[0-9]*");
                if (unformatedCpf.Length != 11 || !cpfRegex.IsMatch("[0-9]*"))
                {
                    errors.Add(messageProducer.GetMessage(new CPFError(CPFErrorEnum.INVALID_DIGITS)));
                }

                if ((!isIgnoringRepeatedDigits) && hasAllRepeatedDigits(unformatedCpf))
                {
                    errors.Add(messageProducer.GetMessage(new CPFError(CPFErrorEnum.REPEATED_DIGITS)));
                }

                string cpfSemDigito = unformatedCpf.Substring(0, unformatedCpf.Length - 2);
                string digitos      = unformatedCpf.Substring(unformatedCpf.Length - 2);

                string digitosCalculados = calculaDigitos(cpfSemDigito);

                if (!digitos.Equals(digitosCalculados))
                {
                    errors.Add(messageProducer.GetMessage(new CPFError(CPFErrorEnum.INVALID_CHECK_DIGITS)));
                }
            }
            return(errors);
        }
예제 #3
0
        private IList <IValidationMessage> GetInvalidValues(string renavam)
        {
            IList <IValidationMessage> errors = new List <IValidationMessage>();

            if (!string.IsNullOrEmpty(renavam))
            {
                renavam = FormataPadraoNovo(renavam);

                if (isFormatted && !FORMATED.IsMatch(renavam))
                {
                    errors.Add(messageProducer.GetMessage(new RenavamError(RenavamErrorEnum.INVALID_FORMAT)));
                }

                string unformatedRenavam = string.Empty;

                try
                {
                    unformatedRenavam = new RenavamFormatter().UnFormat(renavam);
                }
                catch (ArgumentException)
                {
                    errors.Add(messageProducer.GetMessage(new RenavamError(RenavamErrorEnum.INVALID_DIGITS)));
                    return(errors);
                }

                Regex unfRenavam = new Regex("[0-9]*");
                if (unformatedRenavam.Length != 11 || !unfRenavam.IsMatch(unformatedRenavam))
                {
                    errors.Add(messageProducer.GetMessage(new RenavamError(RenavamErrorEnum.INVALID_DIGITS)));
                }

                string renavamSemDigito = unformatedRenavam.Substring(0, unformatedRenavam.Length - 1);
                string digito           = unformatedRenavam.Substring(unformatedRenavam.Length - 1);

                string digitoCalculado = CalculaDigito(renavamSemDigito);

                if (!digito.Equals(digitoCalculado))
                {
                    errors.Add(messageProducer.GetMessage(new RenavamError(RenavamErrorEnum.INVALID_CHECK_DIGIT)));
                }
            }
            return(errors);
        }
예제 #4
0
        private IList <IValidationMessage> GetInvalidValues(string cnpj)
        {
            IList <IValidationMessage> errors = new List <IValidationMessage>();

            if (cnpj != null)
            {
                if (isFormatted != FORMATED.Match(cnpj).Success)
                {
                    errors.Add(messageProducer.GetMessage(new CNPJError(CNPJErrorEnum.INVALID_FORMAT)));
                }

                string unformatedCNPJ = null;
                try
                {
                    unformatedCNPJ = new CNPJFormatter().UnFormat(cnpj);
                }
                catch (ArgumentException)
                {
                    errors.Add(messageProducer.GetMessage(new CNPJError(CNPJErrorEnum.INVALID_DIGITS)));
                    return(errors);
                }

                var regxUnFormatedCNPJ = new Regex("[0-9]*");

                if (unformatedCNPJ.Length != 14 || !regxUnFormatedCNPJ.IsMatch(unformatedCNPJ))
                {
                    errors.Add(messageProducer.GetMessage(new CNPJError(CNPJErrorEnum.INVALID_DIGITS)));
                }

                string cnpjSemDigito = unformatedCNPJ.Substring(0, unformatedCNPJ.Length - 2);
                string digitos       = unformatedCNPJ.Substring(unformatedCNPJ.Length - 2);

                string digitosCalculados = CalculaDigitos(cnpjSemDigito);

                if (!digitos.Equals(digitosCalculados))
                {
                    errors.Add(messageProducer.GetMessage(new CNPJError(CNPJErrorEnum.INVALID_CHECK_DIGITS)));
                }
            }
            return(errors);
        }
예제 #5
0
        public IList <IValidationMessage> GenerateValidationMessages(IList <IInvalidValue> invalidValues)
        {
            IList <IValidationMessage> messages = new List <IValidationMessage>();

            foreach (IInvalidValue invalidValue in invalidValues)
            {
                IValidationMessage message = messageProducer.GetMessage(invalidValue);
                messages.Add(message);
            }

            return(messages);
        }
예제 #6
0
        private IList <IValidationMessage> GetInvalidValues(string nit)
        {
            IList <IValidationMessage> errors = new List <IValidationMessage>();

            if (!string.IsNullOrEmpty(nit))
            {
                if (isFormatted && !FORMATED.IsMatch(nit))
                {
                    errors.Add(messageProducer.GetMessage(new NITError(NITErrorEnum.INVALID_FORMAT)));
                }

                string unformatedNIT = string.Empty;
                try
                {
                    unformatedNIT = new NITFormatter().UnFormat(nit);
                }
                catch (ArgumentException)
                {
                    errors.Add(messageProducer.GetMessage(new NITError(NITErrorEnum.INVALID_DIGITS)));
                    return(errors);
                }
                var regexUnfNIT = new Regex("[0-9]*");
                if (unformatedNIT.Length != 11 || !regexUnfNIT.IsMatch(unformatedNIT))
                {
                    errors.Add(messageProducer.GetMessage(new NITError(NITErrorEnum.INVALID_DIGITS)));
                }

                string nitSemDigito     = unformatedNIT.Substring(0, unformatedNIT.Length - 1);
                string digito           = unformatedNIT.Substring(unformatedNIT.Length - 1);
                string digitoCalculados = calculaDigitos(nitSemDigito);

                if (!digito.Equals(digitoCalculados))
                {
                    errors.Add(messageProducer.GetMessage(new NITError(NITErrorEnum.INVALID_CHECK_DIGITS)));
                }
            }

            return(errors);
        }