Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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
            }
        }