Exemplo n.º 1
0
        public ActionResult EsqueceuSenha(CandidatoEsqueceuSenhaViewModel model)
        {
            if (!StringExt.IsNullOrWhiteSpace(model.Cpf, model.Email) && Valida.CPF(model.Cpf) && Valida.Email(model.Email))
            {
                Candidato c = Candidato.ListarPorCPF(Formate.DeCPF(model.Cpf));

                if (c != null && c.Email.ToLower() == model.Email.ToLower())
                {
                    string token = Candidato.GerarTokenParaAlterarSenha(c);
                    string url   = Url.Action("AlterarSenha", "Candidato", new { codigo = token }, Request.Url.Scheme);
                    EnviarEmail.SolicitarSenha(c.Email, c.Nome, url);
                    TempData["EsqueceuSenhaMensagem"] = $"Um email com instruções foi enviado para {c.Email}.";
                    return(RedirectToAction("EsqueceuSenha"));
                }
                else
                {
                    model.Mensagem = "Não foi encontrado nenhum candidato para os dados informados.";
                }
            }
            else
            {
                model.Mensagem = "Todos os campos devem serem preenchidos com valores válidos.";
            }
            return(View(model));
        }
Exemplo n.º 2
0
        public static Candidato Autenticar(string cpf, string senha)
        {
            Candidato candidato = ListarPorCPF(Formate.DeCPF(cpf));

            if (candidato != null && Criptografia.ChecarSenha(senha, candidato.Senha))
            {
                return(candidato);
            }
            return(null);
        }
Exemplo n.º 3
0
        public ActionResult Cadastrar(CandidatoCadastrarViewModel model)
        {
            if (!StringExt.IsNullOrWhiteSpace(model.Nome, model.Cpf, model.Email, model.Senha, model.SenhaConfirmacao))
            {
                if (model.SenhaConfirmacao == model.Senha)
                {
                    if (Valida.Email(model.Email))
                    {
                        model.Cpf = Formate.DeCPF(model.Cpf);
                        if (Candidato.ListarPorCPF(model.Cpf) == null)
                        {
                            if (model.Cpf.Length == 11 && Valida.CPF(model.Cpf))
                            {
                                var c = new Candidato()
                                {
                                    Nome  = model.Nome,
                                    Cpf   = model.Cpf,
                                    Email = model.Email,
                                    Senha = Criptografia.RetornarHash(model.Senha)
                                };

                                Candidato.Inserir(c);
                                Sessao.Inserir("SimuladoCandidato", c);

                                EnviarEmail.Cadastro(c.Email, c.Nome);

                                return(RedirectToAction("Perfil"));
                            }
                            else
                            {
                                model.Mensagem = "Informe um CPF válido.";
                            }
                        }
                        else
                        {
                            model.Mensagem = "Este CPF já está cadastrado.";
                        }
                    }
                    else
                    {
                        model.Mensagem = "Informe um email válido.";
                    }
                }
                else
                {
                    model.Mensagem = "Senha de Confirmação diferente da Senha informada.";
                }
            }
            else
            {
                model.Mensagem = "Todos os campos são obrigatórios.";
            }
            return(View(model));
        }
Exemplo n.º 4
0
        public ActionResult AlterarSenha(string codigo, CandidatoAlterarSenhaViewModel model)
        {
            string    token     = Uri.UnescapeDataString(codigo);
            Candidato candidado = Candidato.LerTokenParaAlterarSenha(Criptografia.Base64Decode(token));

            if (candidado != null)
            {
                if (!StringExt.IsNullOrWhiteSpace(model.Cpf, model.Email, model.Senha, model.Confirmacao) &&
                    Valida.CPF(model.Cpf) &&
                    Valida.Email(model.Email) &&
                    model.Senha == model.Confirmacao)
                {
                    using (var contexto = new Contexto())
                    {
                        string    cpf = Formate.DeCPF(model.Cpf);
                        Candidato c   = contexto.Candidato.FirstOrDefault(cand => cand.Cpf == cpf);

                        if (c != null && c.Email.ToLower() == model.Email.ToLower())
                        {
                            if (c.Cpf == candidado.Cpf && c.Email.ToLower() == candidado.Email.ToLower())
                            {
                                c.Senha        = Criptografia.RetornarHash(model.Senha);
                                c.AlterarSenha = null;
                                model.Mensagem = "Senha alterada com sucesso.";
                                model.Ok       = true;
                                contexto.SaveChanges();
                                return(View(model));
                            }
                        }
                        else
                        {
                            model.Mensagem = "Não foi encontrado nenhum candidato para os dados informados.";
                        }
                    }
                }
                else
                {
                    model.Mensagem = "Todos os campos devem serem preenchidos com valores válidos.";
                }

                return(View(model));
            }
            return(RedirectToAction("Index"));
        }