Ejemplo n.º 1
0
        public async Task <IActionResult> Registar(RegistarPessoaViewModel PessoaInfo)
        {
            if (!ModelState.IsValid)//caso haja erro fica na mesma pagina
            {
                return(View(PessoaInfo));
            }

            //cria utilizador
            string       username = PessoaInfo.Email;
            IdentityUser user     = await _userManager.FindByNameAsync(username);

            if (user != null)//se o email ja existe
            {
                ModelState.AddModelError("Email", "Este Email ja esta registado");
                return(View(PessoaInfo));
            }

            user = new IdentityUser(username);
            await _userManager.CreateAsync(user, PessoaInfo.Password);

            await _userManager.CreateAsync(user, "Turista");

            //cria Pessoa
            Pessoa pessoa = new Pessoa
            {
                Nome          = PessoaInfo.Nome,
                Email         = PessoaInfo.Email,
                Data_Nasc     = PessoaInfo.Data_Nasc,
                Sexo          = PessoaInfo.Sexo,
                Nacionalidade = PessoaInfo.Nacionalidade,
                Fiabilidade   = 0
            };

            _context.Add(pessoa);
            await _context.SaveChangesAsync();

            //return RedirectToAction(nameof(AmbienteController.Ambiente),"Ambiente");
            ViewBag.PessoaSucesso = "Criar";
            return(RedirectToAction("CriarSucesso"));

            //ViewData["FuncaoId"] = new SelectList(_context.Funcao, "FuncaoId", "FuncaoDesempenhar", pessoa.FuncaoId);
            //return View(pessoaInfo);
        }
Ejemplo n.º 2
0
        public async Task <IActionResult> RegistarApresentacao(RegistarPessoaViewModel PessoaInfo)
        {
            if (!ModelState.IsValid)//caso haja erro fica na mesma pagina
            {
                return(RedirectToAction("Index", "Home", new { erro = "Registar", emailregisto = PessoaInfo.Email, nome = PessoaInfo.Nome, data_nasc = PessoaInfo.Data_Nasc, sexo = PessoaInfo.Sexo, nacionalidade = PessoaInfo.Nacionalidade }));
            }

            //cria utilizador
            string       username = PessoaInfo.Email;
            IdentityUser user     = await _userManager.FindByNameAsync(username);

            if (user != null)//se o email ja existe
            {
                ModelState.AddModelError("Email", "Este Email ja esta registado");
                return(RedirectToAction("Index", "Home", new { erro = "Registar", tipoerro = "Email", emailregisto = PessoaInfo.Email, nome = PessoaInfo.Nome, data_nasc = PessoaInfo.Data_Nasc, sexo = PessoaInfo.Sexo, nacionalidade = PessoaInfo.Nacionalidade }));
                //return View(PessoaInfo);
            }

            string pass = PessoaInfo.Password;

            if (pass.Length < 8)
            {
                ModelState.AddModelError("Password", "As passwords nao correspondem");
                return(RedirectToAction("Index", "Home", new { erro = "Registar", tipoerro = "Pass", emailregisto = PessoaInfo.Email, nome = PessoaInfo.Nome, data_nasc = PessoaInfo.Data_Nasc, sexo = PessoaInfo.Sexo, nacionalidade = PessoaInfo.Nacionalidade }));
            }

            int maiuscula = 0;
            int minuscula = 0;
            int numero    = 0;
            int especial  = 0;

            for (var i = 0; i < pass.Length; i++)
            {
                char c = pass[i];
                if (char.IsDigit(c))
                {
                    numero++;
                }
                else if (char.IsLetter(c))
                {
                    if (char.IsLower(c))
                    {
                        minuscula++;
                    }
                    else
                    {
                        maiuscula++;
                    }
                }
                else
                {
                    especial++;
                }
            }

            if (maiuscula == 0 || minuscula == 0 || numero == 0 || especial == 0)
            {
                ModelState.AddModelError("Password", "As passwords nao correspondem");
                return(RedirectToAction("Index", "Home", new { erro = "Registar", tipoerro = "Char", emailregisto = PessoaInfo.Email, nome = PessoaInfo.Nome, data_nasc = PessoaInfo.Data_Nasc, sexo = PessoaInfo.Sexo, nacionalidade = PessoaInfo.Nacionalidade }));
            }

            user = new IdentityUser(username);
            await _userManager.CreateAsync(user, PessoaInfo.Password);

            await _userManager.CreateAsync(user, "Turista");

            //cria Pessoa
            Pessoa pessoa = new Pessoa
            {
                Nome          = PessoaInfo.Nome,
                Email         = PessoaInfo.Email,
                Data_Nasc     = PessoaInfo.Data_Nasc,
                Sexo          = PessoaInfo.Sexo,
                Nacionalidade = PessoaInfo.Nacionalidade,
                Fiabilidade   = 0
            };

            _context.Add(pessoa);
            await _context.SaveChangesAsync();

            //return RedirectToAction(nameof(AmbienteController.Ambiente), "Ambiente");
            ViewBag.PessoaSucesso = "Criar";
            return(RedirectToAction("CriarSucesso"));

            //ViewData["FuncaoId"] = new SelectList(_context.Funcao, "FuncaoId", "FuncaoDesempenhar", pessoa.FuncaoId);
            //return View(pessoaInfo);
        }