public JsonResult Incluir(ClienteModel model) { BoCliente bo = new BoCliente(); BoValidarCPF boValidarCPF = new BoValidarCPF(); 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 { if (!boValidarCPF.ValidaCPF(model.CPF)) { Response.StatusCode = 400; return(Json(string.Join(Environment.NewLine, "Este não é um CPF valido!"))); } if (bo.VerificarExistencia(model.CPF)) { Response.StatusCode = 400; return(Json(string.Join(Environment.NewLine, "Este CPF ja esta em uso!"))); } 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 }); if (!string.IsNullOrEmpty(model.Beneficiarios)) { List <BeneficiarioModel> beneficiarios = JsonConvert.DeserializeObject <List <BeneficiarioModel> >(model.Beneficiarios); var result = ManipulaBeneficiarios(beneficiarios, model.Id); if (!string.IsNullOrEmpty(result)) { Response.StatusCode = 400; return(Json(string.Join(Environment.NewLine, result))); } } return(Json("Cadastro efetuado com sucesso")); } }
public string ManipulaBeneficiarios(List <BeneficiarioModel> beneficiarios, long clienteId) { BoBeneficiario boBeneficiario = new BoBeneficiario(); BoValidarCPF boValidarCPF = new BoValidarCPF(); List <BeneficiarioModel> beneficiarioAlterado = new List <BeneficiarioModel>(); List <long> beneficiariosModelIds = new List <long>(); List <long> beneficiariosDelIds = new List <long>(); List <long> beneficiariosIds = new List <long>(); List <Beneficiario> listBeneficiarios = new BoBeneficiario().Pesquisar(clienteId); beneficiarios.ForEach(item => beneficiariosModelIds.Add(item.Id)); beneficiarioAlterado = beneficiarios.Where(w => w.Alterado).ToList(); if (listBeneficiarios.Count > 0) { beneficiariosDelIds = listBeneficiarios.Where(w => !beneficiariosModelIds.Contains(w.Id)).Select(x => x.Id).ToList(); beneficiariosIds = listBeneficiarios.Where(w => beneficiariosModelIds.Contains(w.Id)).Select(x => x.Id).ToList(); } if (beneficiariosDelIds.Count > 0) { beneficiariosDelIds.ForEach(id => boBeneficiario.Excluir(id)); } if (beneficiarios.Count > 0) { beneficiarioAlterado.ForEach( beneficiario => boBeneficiario.Alterar( new Beneficiario() { Id = beneficiario.Id, IdCliente = beneficiario.IdCliente, Nome = beneficiario.Nome, CPF = beneficiario.CPF } ) ); } foreach (var beneficiario in beneficiarios) { if (!beneficiariosIds.Contains(beneficiario.Id)) { if (!boValidarCPF.ValidaCPF(beneficiario.CPF)) { return($"Este não é um CPF valido: {beneficiario.CPF}"); } if (boBeneficiario.VerificarExistencia(beneficiario.CPF)) { return($"Este CPF ja esta em uso: {beneficiario.CPF}"); } beneficiario.Id = boBeneficiario.Incluir(new Beneficiario() { IdCliente = clienteId, Nome = beneficiario.Nome, CPF = beneficiario.CPF }); } } return(""); }