コード例 #1
0
        public ActionResult CreateStepOne([Bind(Exclude = "VerificacaoEmail, CodigoAtivacao")] Usuario usuario)
        {
            #region
            //try
            //{
            //    if (Session["User"] == null) {
            //        Session["User"] = usuario;
            //    }
            //    return RedirectToAction("CreateStepTwo", "Usuario");
            //}
            #endregion
            try
            {
                bool   Status   = false;
                string mensagem = "";
                //Validação do modelo
                if (ModelState.IsValid)
                {
                    var checkEmail = usuarioServico.GetUsuariosByEmail().FirstOrDefault(e => e.Email == usuario.Email);
                    var checkCpf   = usuarioServico.GetUsuariosByCpf().FirstOrDefault(e => e.Cpf == usuario.Cpf);
                    if (checkEmail == null && checkCpf == null)
                    {
                        #region Gerar código de ativação
                        Random random          = new Random();
                        string numeroAleatorio = string.Empty;
                        for (int i = 0; i < 6; i++)
                        {
                            numeroAleatorio += random.Next(0, 10).ToString();
                        }
                        usuario.CodigoAtivacao = numeroAleatorio;
                        #endregion

                        #region Criptografia de senha
                        usuario.Senha          = Crypto.Hash(usuario.Senha);
                        usuario.ConfirmarSenha = Crypto.Hash(usuario.ConfirmarSenha);
                        #endregion

                        #region Validação de campos
                        usuario.Telefone = Regex.Replace(usuario.Telefone, @"[^0-9a-zA-Z]+", "", RegexOptions.None, TimeSpan.FromSeconds(1.5));
                        usuario.Cpf      = Regex.Replace(usuario.Cpf, @"[^0-9a-zA-Z]+", "", RegexOptions.None, TimeSpan.FromSeconds(1.5));
                        #endregion

                        usuario.VerificacaoEmail = false;

                        #region Salvar no banco de dados
                        //usuarioServico.SaveUsuario(usuario);
                        #endregion

                        #region Enviar email de validação
                        EnviarEmail(usuario.Email, usuario.CodigoAtivacao);
                        #endregion
                    }
                    else
                    {
                        if (checkEmail != null)
                        {
                            ModelState.AddModelError("EmailExistente", "● Email inserido já cadastrado");
                        }
                        if (checkCpf != null)
                        {
                            ModelState.AddModelError("CPFExistente", "● CPF inserido já cadastrado");
                        }
                        return(View());
                    }

                    mensagem = "Conta registrada com sucesso. Um email de ativação foi enviada para você.";
                    Status   = true;
                }
                else
                {
                    mensagem = "Requisição inválida.";
                    return(View());
                }
                ViewBag.Message = mensagem;
                ViewBag.Status  = Status;
                Session["User"] = usuario;
                return(RedirectToAction("CreateStepTwo", "Cadastro"));
            }
            catch
            {
                return(View());
            }
        }