Ejemplo n.º 1
0
        public async Task <IActionResult> Cadastrar(Empresa empresa, string Senha, string ConfirmacaoSenha)
        {
            if (empresa == null)
            {
                return(View());
            }
            if (Senha == null || Senha == "")
            {
                return(View(empresa));
            }
            if (ConfirmacaoSenha == null || ConfirmacaoSenha == "")
            {
                return(View(empresa));
            }
            if (!(Senha.Equals(ConfirmacaoSenha)))
            {
                return(View(empresa));
            }
            if (ModelState.IsValid)
            {
                Usuario       usuario       = new Usuario();
                UsuarioLogado usuarioLogado = new UsuarioLogado
                {
                    Email    = empresa.Email,
                    UserName = empresa.Email
                };
                usuario.Email            = empresa.Email;
                usuario.Senha            = Senha;
                usuario.ConfirmacaoSenha = ConfirmacaoSenha;
                usuario.Tipo             = true;//[Tipo: true == Empresa]
                usuario.Identificador    = empresa.Identificador;
                if (_usuarioDAO.Cadastrar(usuario))
                {
                    IdentityResult result = await _userManager.
                                            CreateAsync(usuarioLogado, usuario.Senha);

                    if (result.Succeeded)
                    {
                        await _signInManager.SignInAsync(usuarioLogado,
                                                         isPersistent : false);

                        if (_empresaDAO.Cadastrar(empresa))
                        {
                            return(RedirectToAction("Index", empresa));
                        }
                        ModelState.AddModelError("", "Este e-mail já está sendo utilizado!");
                    }
                    AdicionarErros(result);
                }
            }
            return(View(empresa));
        }