public JsonResult Incluir(ClienteModel model)
        {
            BoCliente      bo    = new BoCliente();
            BoBeneficiario boBen = 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
            {
                if (!ValidaDigitoCPF.Valida(model.CPF))
                {
                    Response.StatusCode = 400;
                    return(Json("CPF inválido"));
                }
                if (bo.VerificarExistencia(model.CPF))
                {
                    Response.StatusCode = 400;
                    return(Json("Já existe um cliente cadastrado com este CPF"));
                }
                model.Id = bo.Incluir(new Cliente()
                {
                    CPF           = ValidaDigitoCPF.RemoveCaracte(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
                });

                if (model.Id > 0)
                {
                    foreach (var ben in model.Beneficiarios)
                    {
                        boBen.Incluir(new Beneficiario()
                        {
                            CPF       = ValidaDigitoCPF.RemoveCaracte(ben.CPF),
                            Nome      = ben.Nome,
                            IdCliente = model.Id
                        });
                    }
                }

                return(Json("Cadastro efetuado com sucesso"));
            }
        }
        public JsonResult Alterar(ClienteModel model)
        {
            BoCliente      bo    = new BoCliente();
            BoBeneficiario boBen = 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
            {
                if (!ValidaDigitoCPF.Valida(model.CPF))
                {
                    Response.StatusCode = 400;
                    return(Json("CPF inválido"));
                }
                if (bo.VerificarExistencia(model.CPF) && cli.CPF != model.CPF)
                {
                    Response.StatusCode = 400;
                    return(Json("Já existe um cliente cadastrado com este CPF"));
                }
                bo.Alterar(new Cliente()
                {
                    Id            = model.Id,
                    CPF           = ValidaDigitoCPF.RemoveCaracte(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
                });
                foreach (var benModel in model.Beneficiarios)
                {
                    var ben = cli.Beneficiarios.FirstOrDefault(p => p.CPF == benModel.CPF);
                    if (ben != null)
                    {
                        //Se existe alterar
                        boBen.Alterar(new Beneficiario()
                        {
                            Id   = ben.Id,
                            CPF  = ValidaDigitoCPF.RemoveCaracte(ben.CPF),
                            Nome = benModel.Nome
                        });
                    }
                    else
                    {
                        //Se não existe inclui
                        boBen.Incluir(new Beneficiario()
                        {
                            CPF       = ValidaDigitoCPF.RemoveCaracte(benModel.CPF),
                            Nome      = benModel.Nome,
                            IdCliente = model.Id
                        });
                    }
                }
                foreach (var cliModel in cli.Beneficiarios)
                {
                    var ben = model.Beneficiarios.FirstOrDefault(p => p.CPF == cliModel.CPF);
                    if (ben == null)
                    {
                        //cliModel.Id EXLUIR
                        boBen.Excluir(cliModel.Id);
                    }
                }


                return(Json("Cadastro alterado com sucesso"));
            }
        }