public JsonResult Incluir(ClienteModel model)
        {
            BoCliente bo = new BoCliente();

            if (!this.ModelState.IsValid)
            {
                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
            {
                if (!bo.ValidarCPF(model.CPF))
                {
                    Response.StatusCode = 400;
                    return(Json("CPF inválido!"));
                }

                if (bo.VerificarExistencia(model.CPF, model.Id))
                {
                    Response.StatusCode = 400;
                    return(Json("CPF já cadastrado!"));
                }

                model.Id = bo.Incluir(new Cliente()
                {
                    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,
                    CPF           = model.CPF
                });

                return(Json("Cadastro efetuado com sucesso"));
            }
        }
        public JsonResult Incluir(ClienteModel model)
        {
            BoCliente      bo             = new BoCliente();
            BoBeneficiario boBeneficiario = new BoBeneficiario();

            if (!this.ModelState.IsValid)
            {
                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
            {
                bool existe                = bo.VerificarExistencia(model.CPF);
                bool valido                = bo.ValidarCPF(model.CPF);
                bool beneficiarioValido    = model.Beneficiarios.Any(x => !CPFExtensions.ValidarCPF(x.CPF));
                bool beneficiarioExistente = model.Beneficiarios.Any(ben => boBeneficiario.VerificarExistencia(ben.CPF, ben.IdCliente));

                if (valido && beneficiarioValido)
                {
                    if (!existe && !beneficiarioExistente)
                    {
                        model.Id = bo.Incluir(new Cliente()
                        {
                            CEP           = model.CEP,
                            CPF           = model.CPF,
                            Cidade        = model.Cidade,
                            Email         = model.Email,
                            Estado        = model.Estado,
                            Logradouro    = model.Logradouro,
                            Nacionalidade = model.Nacionalidade,
                            Nome          = model.Nome,
                            Sobrenome     = model.Sobrenome,
                            Telefone      = model.Telefone
                        });

                        model.Beneficiarios.ForEach(ben =>
                        {
                            boBeneficiario.Incluir(new Beneficiario
                            {
                                CPF       = ben.CPF,
                                Nome      = ben.Nome,
                                IdCliente = model.Id
                            });
                        });

                        return(Json("Cadastro efetuado com sucesso"));
                    }
                    else
                    {
                        return(Json("CPF já cadastrado"));
                    }
                }
                else
                {
                    if (!valido)
                    {
                        return(Json("CPF Inválido!"));
                    }
                    else
                    {
                        return(Json("CPF Beneficiario Inválido!"));
                    }
                }
            }
        }