Esempio n. 1
0
        public async Task <IActionResult> Create(Pessoa pessoa, string nivel)
        {
            if (nivel == null)
            {
                nivel = "Funcionario";
            }

            if (ModelState.IsValid)
            {
                //Criar um objeto do usuario logado e passar obrigatoriamente email e username
                UsuarioLogado userLogado = new UsuarioLogado
                {
                    Email    = pessoa.Email,
                    UserName = pessoa.Cpf
                };
                //Cadastra o usuario na tabela do Identity
                IdentityResult result = await userManager.CreateAsync(userLogado, pessoa.Senha);

                //Testa o resultado do cadastro
                if (result.Succeeded)
                {
                    if (nivel.Equals("Administrador"))
                    {
                        Funcionario p1 = new Funcionario();
                        p1.Nome             = pessoa.Nome;
                        p1.Endereco         = pessoa.Endereco;
                        p1.Email            = pessoa.Email;
                        p1.Cpf              = pessoa.Cpf;
                        p1.Senha            = pessoa.Senha;
                        p1.ConfirmacaoSenha = pessoa.ConfirmacaoSenha;
                        p1.Sexo             = pessoa.Sexo;
                        p1.Telefone         = pessoa.Telefone;
                        p1.Acesso           = "Administrador";
                        if (pDAO.CadastrarAdministrador(p1))
                        {
                            //Logar usuario no sistema
                            await signInManager.SignInAsync(userLogado, isPersistent : false);

                            return(RedirectToAction("Index", "Estoque"));
                        }
                        else
                        {
                            ModelState.AddModelError("", "Cpf já Cadastrado");
                        }
                    }
                    else
                    {
                        Cliente p1 = new Cliente();
                        p1.Nome             = pessoa.Nome;
                        p1.Endereco         = pessoa.Endereco;
                        p1.Email            = pessoa.Email;
                        p1.Cpf              = pessoa.Cpf;
                        p1.Senha            = pessoa.Senha;
                        p1.ConfirmacaoSenha = pessoa.ConfirmacaoSenha;
                        p1.Sexo             = pessoa.Sexo;
                        p1.Telefone         = pessoa.Telefone;
                        p1.Acesso           = "Funcionario";
                        if (pDAO.CadastrarFuncionario(p1))
                        {
                            //Logar usuario no sistema
                            await signInManager.SignInAsync(userLogado, isPersistent : false);

                            return(RedirectToAction("Index"));
                        }
                        else
                        {
                            ModelState.AddModelError("", "Cpf já Cadastrado");
                        }
                    }
                }
                AdicionarErros(result);
            }
            return(View(pessoa));
        }