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); }
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); }