Example #1
0
        public ActionResult Alterar(long id)
        {
            BoCliente bo      = new BoCliente();
            Cliente   cliente = bo.Consultar(id);

            Models.ClienteModel model = null;

            if (cliente != null && CPFValidator.IsValid(cliente.CPF))
            {
                model = new ClienteModel()
                {
                    Id            = cliente.Id,
                    CPF           = cliente.CPF,
                    CEP           = cliente.CEP,
                    Cidade        = cliente.Cidade,
                    Email         = cliente.Email,
                    Estado        = cliente.Estado,
                    Logradouro    = cliente.Logradouro,
                    Nacionalidade = cliente.Nacionalidade,
                    Nome          = cliente.Nome,
                    Sobrenome     = cliente.Sobrenome,
                    Telefone      = cliente.Telefone
                };
            }

            return(View(model));
        }
Example #2
0
 public void CPFValidator_Test_Invalid()
 {
     Assert.IsFalse(CPFValidator.IsValid(1114447778836));
     Assert.IsFalse(CPFValidator.IsValid(11144477736));
     Assert.IsFalse(CPFValidator.IsValid(48407362585));
     Assert.IsFalse(CPFValidator.IsValid(11469966662));
 }
Example #3
0
        public void shouldGenerateValidUnformattedCPF()
        {
            CPFValidator cpfValidator = new CPFValidator();
            string       generated    = cpfValidator.GenerateRandomValid();

            cpfValidator.AssertValid(generated);
        }
Example #4
0
        public void shouldValidateCPFWithAllRepeatedDigitsWhenIgnoringIt()
        {
            CPFValidator validator = new CPFValidator(false, true);
            string       value     = "44444444444";

            validator.AssertValid(value);
        }
Example #5
0
        public JsonResult Alterar(ClienteModel model)
        {
            BoCliente bo = new BoCliente();

            if (!this.ModelState.IsValid || !CPFValidator.IsValid(model.CPF))
            {
                List <string> erros = (from item in ModelState.Values
                                       from error in item.Errors
                                       select error.ErrorMessage).ToList();

                Response.StatusCode = 400;
                return(Json(string.Join(Environment.NewLine, erros)));
            }
            else
            {
                bo.Alterar(new Cliente()
                {
                    Id            = model.Id,
                    CPF           = model.CPF,
                    CEP           = model.CEP,
                    Cidade        = model.Cidade,
                    Email         = model.Email,
                    Estado        = model.Estado,
                    Logradouro    = model.Logradouro,
                    Nacionalidade = model.Nacionalidade,
                    Nome          = model.Nome,
                    Sobrenome     = model.Sobrenome,
                    Telefone      = model.Telefone
                });

                return(Json("Cadastro alterado com sucesso"));
            }
        }
        public void NaoDeveValidarCPFComDigitosRepetidos()
        {
            string[] cpfs = new string[]
            {
                "11111111111",
                "22222222222",
                "33333333333",
                "44444444444",
                "55555555555",
                "66666666666",
                "77777777777",
                "88888888888",
                "99999999999"
            };

            CPFValidator validator = new CPFValidator();

            foreach (var cpf in cpfs)
            {
                try
                {
                    validator.AssertValid("22222222222");
                    Assert.Fail();
                }
                catch (InvalidStateException e)
                {
                    Assert.IsTrue(e.GetErrors().Count == 1);
                    AssertMessage(e, DocumentError.RepeatedDigits);
                }
            }
        }
Example #7
0
        public void shouldBeEligibleConstructorFormatted()
        {
            CPFValidator cpfValidator = new CPFValidator(true);

            Assert.IsFalse(cpfValidator.IsEligible(validStringNotFormatted));
            Assert.IsTrue(cpfValidator.IsEligible(validString));
        }
Example #8
0
        public void shouldValidateValidFormattedCPF()
        {
            CPFValidator validator = new CPFValidator(true);
            // VALID CPF = 356.296.825-63
            string value = "356.296.825-63";

            validator.AssertValid(value);
        }
Example #9
0
        public Student UpdateCPF(string cpf)
        {
            var CPFValidator = new CPFValidator();

            RuleValidator
            .New()
            .When(string.IsNullOrEmpty(cpf) || !CPFValidator.IsValid(cpf), Resource.InvalidCPF)
            .ThrowExceptionIfExists();
            CPF = cpf;
            return(this);
        }
        private string Valid(CreditCard creditCard)
        {
            StringBuilder messages = new StringBuilder();

            if (string.IsNullOrEmpty(creditCard.Name))
            {
                messages.Append("O nome não foi preenchido!" + Environment.NewLine);
            }

            if (string.IsNullOrEmpty(creditCard.Number))
            {
                messages.Append("O Cartão de crédito não foi preenchido!" + Environment.NewLine);
            }
            else if (creditCard.Number.Length < 19)
            {
                messages.Append("O numero do cartão de crédito esta incompleto" + Environment.NewLine);
            }

            try
            {
                var expiredString = creditCard.DateExpired.Split('/');
                var month         = int.Parse(expiredString[0]);
                var year          = int.Parse(expiredString[1]);
                new DateTime(month, year, 01);
            }
            catch (Exception e)
            {
                messages.Append("A validade do cartão não é valida!" + Environment.NewLine);
            }
            if (string.IsNullOrEmpty(creditCard.SecurityCode))
            {
                messages.Append("O código de segurança não foi preenchido!" + Environment.NewLine);
            }
            else if (creditCard.Number.Length < 3)
            {
                messages.Append("O código de segurança esta incompleto" + Environment.NewLine);
            }

            if (string.IsNullOrEmpty(creditCard.Document))
            {
                messages.Append("O cpf não foi preenchido!" + Environment.NewLine);
            }
            else if (creditCard.Document.Length < 11)
            {
                messages.Append("O cpf esta incompleto" + Environment.NewLine);
            }
            else if (CPFValidator.IsCpf(creditCard.Document))
            {
                messages.Append("O cpf é inválido" + Environment.NewLine);
            }

            return(messages.ToString());
        }
Example #11
0
        protected override ValidationResult IsValid(object value, ValidationContext validationContext)
        {
            if (value != null && !string.IsNullOrEmpty(Convert.ToString(value)))
            {
                bool isValid = CPFValidator.IsCpf(value.ToString());

                if (isValid)
                {
                    return(ValidationResult.Success);
                }
            }

            return(GetValidationResultErrorMessage(ErrorMessage ?? ErrorMessageList[0],
                                                   validationContext?.DisplayName));
        }
Example #12
0
        public Student(string name, string cpf, string email, TargetAudience targetAudience)
        {
            var CPFValidator = new CPFValidator();

            RuleValidator
            .New()
            .When(string.IsNullOrEmpty(name), Resource.InvalidName)
            .When(string.IsNullOrEmpty(cpf) || !CPFValidator.IsValid(cpf), Resource.InvalidCPF)
            .When(string.IsNullOrEmpty(email) || !RegexUtilities.IsValidEmail(email), Resource.InvalidEmail)
            .ThrowExceptionIfExists();
            Name           = name;
            CPF            = cpf;
            Email          = email;
            TargetAudience = targetAudience;
        }
        public void NaoDeveValidarCPFValidoNaoFormatado()
        {
            CPFValidator validator = new CPFValidator(true);

            // VALID CPF = 332.375.322-40
            try
            {
                validator.AssertValid("33237532240");
                Assert.Fail();
            }
            catch (InvalidStateException e)
            {
                Assert.IsTrue(e.GetErrors().Count == 1);
                AssertMessage(e, DocumentError.InvalidFormat);
            }
        }
Example #14
0
 public bool Validate(Users User)
 {
     if (!CPFValidator.Validate(User.CPF))
     {
         return(false);
     }
     if (!IsValidEmail(User.Email))
     {
         return(false);
     }
     if (CdDb.Users.Any(x => x.Email == User.Email || x.CPF == User.CPF))
     {
         return(false);
     }
     return(true);
 }
Example #15
0
        public void shouldNotValidateCPFWithAllRepeatedDigitsWhenNotIgnoringIt()
        {
            CPFValidator validator = new CPFValidator(false, false);

            try
            {
                string value = "44444444444";
                validator.AssertValid(value);
                Assert.Fail();
            }
            catch (InvalidStateException e)
            {
                Assert.IsTrue(e.GetInvalidMessages().Count == 1);
                assertMessage(e, REPEATED_DIGITS);
            }
        }
Example #16
0
        static void Main(string[] args)
        {
            String       cpf       = "86288366757";
            CPFValidator validador = new CPFValidator();

            try
            {
                validador.IsValid(cpf);
                System.Console.WriteLine("CPF VÁLIDO");
            }
            catch (InvalidStateException e)
            {
                System.Console.WriteLine("CPF INVÁLIDO : " + e);
            }
            System.Console.ReadKey();
        }
Example #17
0
        public void shouldNotValidateValidUnformattedCPF()
        {
            CPFValidator validator = new CPFValidator(true);

            // VALID CPF = 332.375.322-40
            try
            {
                string value = "33237532240";
                validator.AssertValid(value);
                Assert.Fail();
            }
            catch (InvalidStateException e)
            {
                Assert.IsTrue(e.GetInvalidMessages().Count == 1);
                assertMessage(e, INVALID_FORMAT);
            }
        }
Example #18
0
        public void IsValid()
        {
            var v = new CPFValidator();

            //Syntax incorrect
            Assert.IsFalse(v.IsValid("123.456.789-12", null));
            Assert.IsFalse(v.IsValid("12345678912", null));
            Assert.IsFalse(v.IsValid("12 4567 912", null));
            Assert.IsFalse(v.IsValid("31.564973", null));
            Assert.IsFalse(v.IsValid("3154-973", null));

            //True value tests:
            Assert.IsTrue(v.IsValid("111.111.111-11", null));
            Assert.IsTrue(v.IsValid("222.222.222-22", null));
            Assert.IsTrue(v.IsValid("11111111111", null));
            Assert.IsTrue(v.IsValid("22222222222", null));
            Assert.IsTrue(v.IsValid(null, null));
            Assert.IsTrue(v.IsValid(string.Empty, null));
        }
Example #19
0
        public async Task <IActionResult> Editar(UsuarioDTO usuarioDTO)
        {
            var validator = new CPFValidator();

            if (usuarioDTO.CPF != null)
            {
                if (!validator.IsCpf(usuarioDTO.CPF))
                {
                    ModelState.AddModelError("CPF", "O CPF fornecido é inválido!");
                }
                else
                {
                    usuarioDTO.CPF = new String(usuarioDTO.CPF.Where(Char.IsDigit).ToArray());
                }
            }

            if (!ModelState.IsValid)
            {
                return(View(usuarioDTO));
            }

            try
            {
                var usuario = MapUserDTO(usuarioDTO);
                _userRepository.Update(usuario);
                await _userManager.UpdateNormalizedEmailAsync(usuario);

                await _userManager.UpdateNormalizedUserNameAsync(usuario);


                if (usuarioDTO.IsAdministrador == true)
                {
                    await _userManager.AddToRoleAsync(usuario, "Administrador");
                }
                else
                {
                    await _userManager.RemoveFromRoleAsync(usuario, "Administrador");
                }
                if (usuarioDTO.IsCliente == true)
                {
                    await _userManager.AddToRoleAsync(usuario, "Cliente");
                }
                else
                {
                    await _userManager.RemoveFromRoleAsync(usuario, "Cliente");
                }
                if (usuarioDTO.IsFuncionario == true)
                {
                    await _userManager.AddToRoleAsync(usuario, "Funcionario");
                }
                else
                {
                    await _userManager.RemoveFromRoleAsync(usuario, "Funcionario");
                }

                await _userRepository.SaveChangesAsync();

                TempData["success"] = "Edição de usuário feita com sucesso!";
                return(RedirectToAction(actionName: "TodosUsuarios", controllerName: "AdminUsuarios"));
            }
            catch (System.Exception ex)
            {
                var message = ex.ToString();
                if (message.Contains("IX_AspNetUsers_Email"))
                {
                    ModelState.AddModelError("Email", "E-mail já cadastrado, tente outro!");
                }
                else
                if (message.Contains("CPF"))
                {
                    ModelState.AddModelError("CPF", "CPF já cadastrado");
                }
                else
                if (message.Contains("UserName"))
                {
                    ModelState.AddModelError("UserName", "Nome de usuário já cadastrado");
                }
                else
                {
                    return(this.StatusCode(StatusCodes.Status500InternalServerError, ex));
                }
            }
            return(View(usuarioDTO));
        }
 public void Initialize()
 {
     cpfValidator = new CPFValidator();
 }
        public void DeveValidarCPFValidoFormatado()
        {
            CPFValidator cpfValidator = new CPFValidator(true);

            cpfValidator.AssertValid("356.296.825-63");
        }
        private bool ValidarDados()
        {
            bool   erro    = false;
            string msgErro = "";
            string titErro = "";

            StringValidator   STRvalidator = new StringValidator();
            RGValidator       RGvalidator  = new RGValidator();
            CPFValidator      CPFvalidator = new CPFValidator();
            TelefoneValidator Telvalidator = new TelefoneValidator();
            DinheiroValidator Dinvalidator = new DinheiroValidator();

            if (!STRvalidator.Validar(txtNome.Text, 64))
            {
                erro    = true;
                titErro = "Erro, nome do funcionário não informado corretamente!";
                msgErro = "Informe o nome do funcionário para prosseguir com o cadastro.";
                txtNome.Focus();
            }
            else if (dtpDataNascimento.Value.Date >= DateTime.Today)
            {
                erro    = true;
                titErro = "Erro, data de nascimento inválida!";
                msgErro = "Informe uma data de nascimento válida para prosseguir com o cadastro.";
                dtpDataNascimento.Focus();
            }
            else if (cbbSexo.SelectedIndex == -1)
            {
                erro    = true;
                titErro = "Erro, sexo não informado!";
                msgErro = "Selecione o sexo do funcionário para prosseguir com o cadastro.";
                cbbSexo.Focus();
            }
            else if (!RGValidator.Validar(txtRG.Text.Trim()))
            {
                erro    = true;
                titErro = "Erro, RG inválido!";
                msgErro = "Informe um RG válido para prosseguir com o cadastro.";
                txtRG.Focus();
            }
            else if (!CPFvalidator.Validar(txtCPF.Text))
            {
                erro    = true;
                titErro = "Erro, CPF inválido!";
                msgErro = "Informe um CPF válido para prosseguir com o cadastro.";
                txtCPF.Focus();
            }
            else if (!Telvalidator.Validar(txtTelefone1.Text))
            {
                erro    = true;
                titErro = "Erro, Telefone (1) inválido!";
                msgErro = "Informe um Telefone válido para prosseguir com o cadastro.";
                txtTelefone1.Focus();
            }
            else if (txtTelefone2.Text.Replace("-", "").Replace(" ", "").
                     Replace("(", "").Replace(")", "").Trim().Length > 0 &&
                     !Telvalidator.Validar(txtTelefone2.Text))
            {   // Telefone 2 opcional, validar caso seja informado.
                erro    = true;
                titErro = "Erro, Telefone (2) inválido!";
                msgErro = "Informe um Telefone válido para prosseguir com o cadastro.";
                txtTelefone2.Focus();
            }
            else if (txtEmail.Text.Length > 0 && !(new EmailAddressAttribute().IsValid(txtEmail.Text.Trim())))
            {
                erro    = true;
                titErro = "Erro, E-mail informado é inválido!";
                msgErro = "Informe um E-mail válido para prosseguir com o cadastro.";
                txtEmail.Focus();
            }
            else if (cbbCargo.SelectedIndex == -1)
            {
                erro    = true;
                titErro = "Erro, cargo não informado!";
                msgErro = "Selecione o cargo do funcionário para prosseguir com o cadastro.";
                cbbCargo.Focus();
            }
            else if (!Dinvalidator.Validar(txtSalario.Text))
            {
                erro    = true;
                titErro = "Erro, salário inválido!";
                msgErro = "Informe um valor de salário válido para prosseguir com o cadastro.";
                txtSalario.Focus();
            }
            else if (dtpAdmissao.Value.Date > DateTime.Today)
            {
                erro    = true;
                titErro = "Erro, data de admissão inválida!";
                msgErro = "Informe uma data de admissão válida para prosseguir com o cadastro.";
                dtpAdmissao.Focus();
            }

            // Validação de dados para funcionários já cadastrados.
            if (instancia.Id != 0)
            {
                if (chkDemissao.Checked && dtpDemissao.Value.Date > DateTime.Today)
                {
                    erro    = true;
                    titErro = "Erro, data de demissão inválida!";
                    msgErro = "Informe uma data de demissão válida para prosseguir com o cadastro.";
                    dtpDemissao.Focus();
                }
            }


            if (erro)
            {
                MessageBox.Show(msgErro,
                                titErro,
                                MessageBoxButtons.OK,
                                MessageBoxIcon.Error);
            }

            return(!erro);
        }
Example #23
0
        private bool ValidarDados()
        {
            bool   erro    = false;
            string msgErro = "";
            string titErro = "";

            StringValidator   STRvalidator = new StringValidator();
            RGValidator       RGvalidator  = new RGValidator();
            CPFValidator      CPFvalidator = new CPFValidator();
            TelefoneValidator Telvalidator = new TelefoneValidator();

            if (!STRvalidator.Validar(txtNome.Text, 64))
            {
                erro    = true;
                titErro = "Erro, nome do responsável não informado corretamente!";
                msgErro = "Informe o nome do responsável para prosseguir com o cadastro.";
                txtNome.Focus();
            }
            else if (cbbSexo.SelectedIndex == -1)
            {
                erro    = true;
                titErro = "Erro, sexo não informado!";
                msgErro = "Selecione o sexo do responsável para prosseguir com o cadastro.";
                cbbSexo.Focus();
            }
            else if (!ckbOutroParentesco.Checked && cbbParentesco.SelectedIndex == -1)
            {
                erro    = true;
                titErro = "Erro, parentesco não informado!";
                msgErro = "Selecione o parentesco do responsável para prosseguir com o cadastro.";
                cbbSexo.Focus();
            }
            else if (ckbOutroParentesco.Checked && !STRvalidator.Validar(txtOutroParentesco.Text, 64))
            {
                erro    = true;
                titErro = "Erro, parentesco não informado!";
                msgErro = "Informe o parentesco do responsável para prosseguir com o cadastro.";
                txtOutroParentesco.Focus();
            }
            else if (cbbEstadoCivil.SelectedIndex == -1)
            {
                erro    = true;
                titErro = "Erro, estado civil não informado!";
                msgErro = "Selecione o estado civil do responsável para prosseguir com o cadastro.";
                cbbEstadoCivil.Focus();
            }
            else if (txtNomeConjuge.Text.Trim().Length > 0 && !STRvalidator.Validar(txtNomeConjuge.Text, 64))
            {
                erro    = true;
                titErro = "Erro, nome do cônjuge não informado corretamente!";
                msgErro = "Informe o nome do cônjuge corretamente para prosseguir com o cadastro.";
                txtNome.Focus();
            }
            else if (!RGValidator.Validar(txtRG.Text.Trim()))
            {
                erro    = true;
                titErro = "Erro, RG inválido!";
                msgErro = "Informe um RG válido para prosseguir com o cadastro.";
                txtRG.Focus();
            }
            else if (!CPFvalidator.Validar(txtCPF.Text))
            {
                erro    = true;
                titErro = "Erro, CPF inválido!";
                msgErro = "Informe um CPF válido para prosseguir com o cadastro.";
                txtCPF.Focus();
            }
            else if (txtProfissao.Text.Trim().Length > 0 && !STRvalidator.Validar(txtProfissao.Text, 64))
            {
                erro    = true;
                titErro = "Erro, profissão não informada corretamente!";
                msgErro = "Informe o nome da profissão corretamente para prosseguir com o cadastro.";
                txtNome.Focus();
            }
            else if (!Telvalidator.Validar(txtTelefone1.Text))
            {
                erro    = true;
                titErro = "Erro, Telefone (1) inválido!";
                msgErro = "Informe um Telefone válido para prosseguir com o cadastro.";
                txtTelefone1.Focus();
            }
            else if (txtTelefone2.Text.Replace("-", "").Replace(" ", "").
                     Replace("(", "").Replace(")", "").Trim().Length > 0 &&
                     !Telvalidator.Validar(txtTelefone2.Text))
            {   // Telefone 2 opcional, validar caso seja informado.
                erro    = true;
                titErro = "Erro, Telefone (2) inválido!";
                msgErro = "Informe um Telefone válido para prosseguir com o cadastro.";
                txtTelefone2.Focus();
            }
            else if (txtTelefoneTrabalho.Text.Replace("-", "").Replace(" ", "").
                     Replace("(", "").Replace(")", "").Trim().Length > 0 &&
                     !Telvalidator.Validar(txtTelefoneTrabalho.Text))
            {   // Telefone 2 opcional, validar caso seja informado.
                erro    = true;
                titErro = "Erro, Telefone do trabalho inválido!";
                msgErro = "Informe um Telefone válido para prosseguir com o cadastro.";
                txtTelefone2.Focus();
            }

            if (erro)
            {
                MessageBox.Show(msgErro,
                                titErro,
                                MessageBoxButtons.OK,
                                MessageBoxIcon.Error);
            }

            return(!erro);
        }
        [TestCase("111222333444")] // cpf.Length > 11
        public void DeveValidarCPFTamanhoInvalido(string cpf)
        {
            var sut = new CPFValidator();

            Assert.IsFalse(sut.Validar(cpf));
        }
        public void DeveValidarUmCPFVazioOuNulo(string cpf)
        {
            var sut = new CPFValidator();

            Assert.IsFalse(sut.Validar(cpf));
        }
Example #26
0
        public async Task <IActionResult> Register(ApplicationUserDTO applicationUserDTO)
        {
            var validator = new CPFValidator();

            if (applicationUserDTO.CPF != null)
            {
                if (!validator.IsCpf(applicationUserDTO.CPF))
                {
                    ModelState.AddModelError("CPF", "O CPF fornecido é inválido!");
                }
            }

            if (!ModelState.IsValid)
            {
                return(View(applicationUserDTO));
            }

            applicationUserDTO.CPF = new String(applicationUserDTO.CPF.Where(Char.IsDigit).ToArray());

            try
            {
                var user = _mapper.Map <ApplicationUser>(applicationUserDTO);

                //Cria uma variável result e passa os valores para o banco, criando um novo usuario
                var result = await _userManager.CreateAsync(user, applicationUserDTO.Senha);

                if (result.Succeeded)
                {
                    var resultRole = await _userManager.AddToRoleAsync(user, AllRoles.GetDefaultRole());

                    if (resultRole.Succeeded)
                    {
                        TempData["success"] = "Registro feito com sucesso";
                        return(RedirectToAction(actionName: "Index", controllerName: "Home"));
                    }

                    TempData["success"] = "Registro feito, porém falha em adicionar uma função ao usuário, caso persista, contate o suporte.";
                    return(RedirectToAction(actionName: "Index", controllerName: "Home"));
                }
                else
                {
                    foreach (var err in result.Errors)
                    {
                        if (err.Description.Contains("User name"))
                        {
                            ModelState.AddModelError("UserName", "Nome de usuário inválido ou indisponível");
                        }
                        if (err.Code == "PasswordTooShort")
                        {
                            ModelState.AddModelError("Senha", "Tamanho mínimo de 4 caracteres");
                        }
                    }
                }
            }
            catch (System.Exception ex)
            {
                var message = ex.ToString();
                if (message.Contains("IX_AspNetUsers_Email"))
                {
                    ModelState.AddModelError("Email", "E-mail já cadastrado, tente outro!");
                }
                else
                if (message.Contains("CPF"))
                {
                    ModelState.AddModelError("CPF", "CPF já cadastrado");
                }
                else
                {
                    return(this.StatusCode(StatusCodes.Status500InternalServerError, ex));
                }
            }
            return(View(applicationUserDTO));
        }
        public void DeveValidarCPFValido(string cpf)
        {
            var sut = new CPFValidator();

            Assert.IsTrue(sut.Validar(cpf));
        }
Example #28
0
 public void Init()
 {
     validator = new CPFValidator();
 }
        public void DeveInstanciarUmCPFValidator()
        {
            var sut = new CPFValidator();

            Assert.IsNotNull(sut);
        }
Example #30
0
        private string Valid(CreditCard creditCard)
        {
            StringBuilder messages = new StringBuilder();

            if (string.IsNullOrEmpty(creditCard.Name))
            {
                messages.Append("O nome não foi preenchido!" + Environment.NewLine);
            }

            if (string.IsNullOrEmpty(creditCard.Number))
            {
                messages.Append("O número do cartão não foi preenchido!" + Environment.NewLine);
            }
            else if (creditCard.Number.Length < 19)
            {
                messages.Append("O número do cartão está incompleto!" + Environment.NewLine);
            }

            try
            {
                var firstTwoCharYear = DateTime.Now.Year.ToString().Substring(0, 2);

                var expiredString = creditCard.Expired.Split('/');
                var month         = int.Parse(expiredString[0]);
                var year          = int.Parse(firstTwoCharYear + expiredString[1]);

                var expireDate = new DateTime(year, month, 01);
                var now        = DateTime.Now;

                if (
                    expireDate.Year < now.Year ||
                    (expireDate.Month < now.Month && expireDate.Year == now.Year))
                {
                    messages.Append("Cartão expirado!" + Environment.NewLine);
                }
            }
            catch (Exception e)
            {
                messages.Append("A validade do cartão não é válida!" + Environment.NewLine);
            }

            if (string.IsNullOrEmpty(creditCard.SecurityCode))
            {
                messages.Append("O código de segurança não foi preenchido!" + Environment.NewLine);
            }
            else if (creditCard.SecurityCode.Length < 3)
            {
                messages.Append("O número do cartão está incompleto!" + Environment.NewLine);
            }

            if (string.IsNullOrEmpty(creditCard.Document))
            {
                messages.Append("O CPF não foi preenchido!" + Environment.NewLine);
            }
            else if (creditCard.Document.Length < 14)
            {
                messages.Append("O CPF está incompleto!" + Environment.NewLine);
            }
            else if (!CPFValidator.IsCpf(creditCard.Document))
            {
                messages.Append("O CPF é inválido!" + Environment.NewLine);
            }

            return(messages.ToString());
        }