public static Candidato Inserir(Candidato entity)
        {
            using (var contexto = new EasyProgramadoresEntities())
            {
                try
                {
                    contexto.Candidatoes.Add(entity);


                    contexto.SaveChanges();


                    foreach (var buscaVaga in entity.CandidatoBuscaVagas)
                    {
                        contexto.CandidatoBuscaVagas.Add(
                            new CandidatoBuscaVaga()
                        {
                            CandidatoId = entity.Id,
                            BuscaVagaId = buscaVaga.BuscaVagaId
                        });
                    }

                    contexto.SaveChanges();

                    return(entity);
                }
                catch (Exception ex)
                {
                    return(null);
                }
            }
        }
        public static Candidato Delete(int Id)
        {
            using (var contexto = new EasyProgramadoresEntities())
            {
                try
                {
                    var entity = contexto.Candidatoes.Find(Id);

                    if (entity == null)
                    {
                        throw new Exception("Candidato não encontrado!");
                    }

                    contexto.CandidatoBuscaVagas.RemoveRange(contexto.CandidatoBuscaVagas.Where(p => p.CandidatoId == entity.Id));
                    contexto.Candidatoes.Remove(entity);
                    contexto.SaveChanges();

                    return(entity);
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }
        }
        public static Candidato Atualizar(Candidato entity)
        {
            using (var contexto = new EasyProgramadoresEntities())
            {
                try
                {
                    entity.CandidatoBuscaVagas.ToList().ForEach(p => p.CandidatoId = entity.Id);


                    foreach (var item in entity.CandidatoBuscaVagas)
                    {
                        if (item.Id == 0)
                        {
                            contexto.CandidatoBuscaVagas.Add(item);
                        }
                        else
                        {
                            contexto.Entry(item).State = EntityState.Modified;
                        }
                    }

                    contexto.Entry(entity).State = EntityState.Modified;

                    contexto.SaveChanges();

                    entity =
                        contexto.Candidatoes.Where(p => p.Id == entity.Id)
                        .Include(p => p.CandidatoBuscaVagas)
                        .ToList()
                        .FirstOrDefault();
                    return(entity);
                }
                catch (Exception ex)
                {
                    return(null);
                }
            }
        }