public void DeleteCascata(int id) { var lista = ctx.Experiencias.Where(E => E.IdUsuario == id); foreach (var item in lista) { _experienciasRepository.Delete(item); } Usuario user = ctx.Usuario .Include(u => u.IdAcessoNavigation) .Include(u => u.IdEnderecoNavigation) .Include(u => u.IdPreferenciasTrabalhoNavigation) .Include(u => u.IdPreferenciasTrabalhoNavigation.IdRegimeContratacaoNavigation) .FirstOrDefault(u => u.IdUsuario == id); var inscricao = ctx.Inscricao.Where(i => i.IdUsuario == id).Include(i => i.IdVagaNavigation.IdRegimeContratacaoNavigation).ToList(); foreach (var item in inscricao) { if (item.IdVagaNavigation.IdRegimeContratacaoNavigation.NomeRegimeContratacao == "Estágio") { var estagio = ctx.Estagio.Where(e => e.IdInscricao == item.IdInscricao).FirstOrDefault(); _estagioRepository.Delete(estagio); } _inscricaoRepository.Delete(item); } Delete(user); Acesso acesso = _acessoRepository.GetById(user.IdAcesso); _acessoRepository.Delete(acesso); Endereco endereco = _enderecoRepository.GetById(user.IdEndereco); _enderecoRepository.Delete(endereco); AreaAtuacao areaAtuacao = _areaAtuacaoRepository.GetById(user.IdAreaAtuacao); _areaAtuacaoRepository.Delete(areaAtuacao); PreferenciasTrabalho preferenciasTrabalho = _prefTrabalhoRepository.GetById(user.IdPreferenciasTrabalho); _prefTrabalhoRepository.Delete(preferenciasTrabalho); RegimeContratacao regimeContratacao = _regContratacaoRepository.GetById(user.IdPreferenciasTrabalhoNavigation.IdRegimeContratacao); _regContratacaoRepository.Delete(regimeContratacao); }
public void UpdateCascata(int id, Usuario usuario) { using (var ctx = new CodehunterContext()) { var usuarioBanco = ctx.Usuario .Include(u => u.IdPreferenciasTrabalhoNavigation) .FirstOrDefault(e => e.IdUsuario == id); var acessoBanco = ctx.Acesso.FirstOrDefault(a => a.IdAcesso == usuarioBanco.IdAcesso); //var prefTrabalhoBanco = ctx.PreferenciasTrabalho.FirstOrDefault(p => p.IdPreferenciasTrabalho == usuarioBanco.IdPreferenciasTrabalho); if (usuario.Celular != null) { usuarioBanco.Celular = usuario.Celular; } if (usuario.NomePersonalidade != null) { usuarioBanco.NomePersonalidade = usuario.NomePersonalidade; } if (usuario.Curriculo != null) { usuarioBanco.Curriculo = usuario.Curriculo; } if (usuario.Foto != null) { usuarioBanco.Foto = usuario.Foto; } if (usuario.Descricao != null) { usuarioBanco.Descricao = usuario.Descricao; } ctx.SaveChanges(); if (usuario.IdAcessoNavigation != null) { Acesso acesso = new Acesso { IdAcesso = usuarioBanco.IdAcesso, Email = acessoBanco.Email, Senha = usuario.IdAcessoNavigation.Senha, IdTipoAcesso = 1 }; _acessoRepository.Update(acesso); } if (usuario.IdAreaAtuacaoNavigation != null) { AreaAtuacao areaAtuacao = new AreaAtuacao { IdAreaAtuacao = usuarioBanco.IdAreaAtuacao, NomeAreaAtuacao = usuario.IdAreaAtuacaoNavigation.NomeAreaAtuacao }; _areaAtuacaoRepository.Update(areaAtuacao); } if (usuario.IdEnderecoNavigation != null) { Endereco endereco = new Endereco { IdEndereco = usuarioBanco.IdEndereco, Cep = usuario.IdEnderecoNavigation.Cep, Logradouro = usuario.IdEnderecoNavigation.Logradouro, Complemento = usuario.IdEnderecoNavigation.Complemento, Bairro = usuario.IdEnderecoNavigation.Bairro, Localidade = usuario.IdEnderecoNavigation.Localidade, Uf = usuario.IdEnderecoNavigation.Uf }; _enderecoRepository.Update(endereco); } if (usuario.IdPreferenciasTrabalhoNavigation != null) { PreferenciasTrabalho preferenciasTrabalho = new PreferenciasTrabalho { IdPreferenciasTrabalho = usuarioBanco.IdPreferenciasTrabalho, Linkedin = usuario.IdPreferenciasTrabalhoNavigation.Linkedin, Github = usuario.IdPreferenciasTrabalhoNavigation.Github, StackOverflow = usuario.IdPreferenciasTrabalhoNavigation.StackOverflow, SitePessoal = usuario.IdPreferenciasTrabalhoNavigation.SitePessoal, NivelIngles = usuario.IdPreferenciasTrabalhoNavigation.NivelIngles, SituacaoProfissional = usuario.IdPreferenciasTrabalhoNavigation.SituacaoProfissional, IdRemoto = usuario.IdPreferenciasTrabalhoNavigation.IdRemoto, IdRegimeContratacao = usuarioBanco.IdPreferenciasTrabalhoNavigation.IdRegimeContratacao }; _prefTrabalhoRepository.Update(preferenciasTrabalho); } if (usuario.IdPreferenciasTrabalhoNavigation != null) { if (usuario.IdPreferenciasTrabalhoNavigation.IdRegimeContratacaoNavigation != null) { RegimeContratacao regimeContratacao = new RegimeContratacao { IdRegimeContratacao = usuarioBanco.IdPreferenciasTrabalhoNavigation.IdRegimeContratacao, NomeRegimeContratacao = usuario.IdPreferenciasTrabalhoNavigation.IdRegimeContratacaoNavigation.NomeRegimeContratacao, ExpectativaSalario = usuario.IdPreferenciasTrabalhoNavigation.IdRegimeContratacaoNavigation.ExpectativaSalario }; _regContratacaoRepository.Update(regimeContratacao); } } #region EXPERIENCIAS if (usuario.Experiencias != null) { var lista = ctx.Experiencias.Where(x => x.IdUsuario == id).ToList(); var numeros = new int[lista.Count]; var num = 0; foreach (var item in lista) { numeros[num] = item.IdExperiencias; num++; } num = 0; foreach (var item in usuario.Experiencias) { try { int startIndex = numeros.IndexOf(numeros[num]); Experiencias experiencias = new Experiencias { IdExperiencias = numeros[num], NomeEmpresa = item.NomeEmpresa, Cargo = item.Cargo, DateInicio = item.DateInicio, DateFim = item.DateFim, IdUsuario = id }; _experienciasRepository.Update(experiencias); } catch (Exception) { Experiencias experienciasNova = new Experiencias { NomeEmpresa = item.NomeEmpresa, Cargo = item.Cargo, DateInicio = item.DateInicio, DateFim = item.DateFim, IdUsuario = id }; _experienciasRepository.Add(experienciasNova); } num++; } } #endregion } }