Ejemplo n.º 1
0
        public async System.Threading.Tasks.Task <ActionResult> NovaPessoa([Bind(Include = "PrimeiroNome, Sobrenome, CPF, RG, Sexo, DtNascimento, TelPrincipal, TelOpcional, Email, CEP, Logradouro, Complemento, Numero, Bairro, Cidade, Estado, Pais, PerfilID")] RegistrarComumViewModel novaPessoa)
        {
            if (ModelState.IsValid)
            {
                //Criando pessoa
                int pID = _userStore.AddPessoa(novaPessoa);

                //Criando usuario
                RBAC_Usuario RU = new RBAC_Usuario();
                RU.Pessoa_ID = pID;
                RU.Username  = novaPessoa.Email;

                //Gernado Senha tempraria e salt
                string tempToken = SecurityMethods.GenerateTempTokenAccess();
                string tempSalt  = SecurityMethods.GenerateSalt();
                string tempPass  = SecurityMethods.HashPasswordPBKDF2(tempToken, tempSalt);

                //Criando usuario
                RU.Senha_Hash      = tempPass;
                RU.Salt            = tempSalt;
                RU.Dt_Criacao      = DateTime.Now.Date;
                RU.Dt_Ultima_Modif = DateTime.Now.Date;
                RU.Bloqueado       = false;

                db.RBAC_Usuario.Add(RU);
                db.SaveChanges();

                //Enviando Email da senha
                EmailMessage message = new EmailMessage(novaPessoa.Email, "Bem-vindo ao NimbusAcad!", "Olá, seja bem-vindo ao NimbusAcad \n Esta é sua senha: " + tempToken + "\nRecomenda-se que altere a senha para uma, com fácil memorização.");
                await _emailService.Send(message);

                //Enviando Email de confirmação de email
                var          callbackUrl = Url.Action("ConfirmarEmail", "Account", new { novaPessoa.Email }, null);
                EmailMessage confirmacao = new EmailMessage(novaPessoa.Email, "Confirmar email", "Por favor, confirme seu email clicando neste link: <a href=\"" + callbackUrl + "\">Confirmar</a>");
                await _emailService.Send(confirmacao);

                //Assimilando perfil de acesso
                int uID = _userStore.GetUsuarioID(novaPessoa.Email);
                //VinculoPerfilUsuarioViewModel VPUVM = new VinculoPerfilUsuarioViewModel();
                //VPUVM.UsuarioID = uID;
                //VPUVM.PerfilID = novaPessoa.PerfilID;
                RBAC_Link_Usuario_Perfil linkUP = new RBAC_Link_Usuario_Perfil();
                linkUP.Usuario_ID = uID;
                linkUP.Perfil_ID  = novaPessoa.PerfilID;
                _roleStore.AddUsuarioPerfil(linkUP);

                return(RedirectToAction("RegistrarDocumento", "Funcionario", new { id = pID }));
            }
            PopulatePerfilDropDownList(novaPessoa.PerfilID);
            return(View(novaPessoa));
        }
Ejemplo n.º 2
0
        //Add usuario será feito no AccountController, para enviar o email com a senha temporaria.
        public int AddPessoa(RegistrarComumViewModel pessoa)
        {
            using (NimbusAcad_DB_Entities db = new NimbusAcad_DB_Entities())
            {
                Negocio_Pessoa        NP  = new Negocio_Pessoa();
                Negocio_Endereco      NE  = new Negocio_Endereco();
                Negocio_Base_Endereco NBE = new Negocio_Base_Endereco();

                NP.Primeiro_Nome    = pessoa.PrimeiroNome;
                NP.Sobrenome        = pessoa.Sobrenome;
                NP.CPF              = pessoa.CPF;
                NP.RG               = pessoa.RG;
                NP.Sexo             = pessoa.Sexo;
                NP.Dt_Nascimento    = pessoa.DtNascimento;
                NP.Tel_Principal    = pessoa.TelPrincipal;
                NP.Tel_Opcional     = pessoa.TelOpcional;
                NP.Email            = pessoa.Email;
                NP.Email_Confirmado = false;
                NP.Tot_Notif_NL     = 0;

                db.Negocio_Pessoa.Add(NP);
                db.SaveChanges();

                //Endereço --> Verificar se já existe endereço no CEP informado
                var endereco = db.Negocio_Base_Endereco.Where(o => o.CEP.Equals(pessoa.CEP)).FirstOrDefault();
                if (endereco == null)
                {
                    //Negocio_Base_Endereco
                    NBE.CEP        = pessoa.CEP;
                    NBE.Logradouro = pessoa.Logradouro;
                    NBE.Bairro     = pessoa.Bairro;
                    NBE.Cidade     = pessoa.Cidade;
                    NBE.Estado     = pessoa.Estado;
                    NBE.Pais       = pessoa.Pais;

                    db.Negocio_Base_Endereco.Add(NBE);
                    db.SaveChanges();

                    //Negocio_Endereco
                    int pessoaID = GetPessoaIDporEmail(pessoa.Email);
                    if (pessoaID != 0)
                    {
                        NE.CEP         = pessoa.CEP;
                        NE.Complemento = pessoa.Complemento;
                        NE.Numero      = pessoa.Numero;
                        NE.Ativo       = true;
                        NE.Pessoa_ID   = pessoaID;

                        db.Negocio_Endereco.Add(NE);
                        db.SaveChanges();
                    }
                }
                else
                {
                    int pessoaID = GetPessoaIDporEmail(pessoa.Email);
                    if (pessoaID != 0)
                    {
                        NE.CEP         = pessoa.CEP;
                        NE.Complemento = pessoa.Complemento;
                        NE.Numero      = pessoa.Numero;
                        NE.Ativo       = true;
                        NE.Pessoa_ID   = pessoaID;

                        db.Negocio_Endereco.Add(NE);
                        db.SaveChanges();
                    }
                }
                return(GetPessoaIDporEmail(pessoa.Email));
            }
        }