public async Task <IActionResult> Register() { var cidades = await _CidadeService.FindAllAsync(); var model = new RegistrarUsuarioFormViewModel { Cidades = cidades }; return(View(model)); }
public async Task <IActionResult> Register(RegistrarUsuarioFormViewModel model) { var cidades = await _CidadeService.FindAllAsync(); model.Cidades = cidades; if (ModelState.IsValid) { var user = new Usuario { UserName = model.Email, Email = model.Email, Nome = model.Usuario.Nome, Telefone = model.Usuario.Telefone, Moradia = model.Usuario.Moradia, Protecao = model.Usuario.Protecao, QtAnimais = model.Usuario.QtAnimais, Cidade = model.Usuario.Cidade, CidadeId = model.Usuario.CidadeId, Bio = model.Usuario.Bio }; var result = await UserManager.CreateAsync(user, model.Password); if (result.Succeeded) { var emailtoken = await UserManager.GenerateEmailConfirmationTokenAsync(user); var confirmationLink = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, token = emailtoken }, Request.Scheme); Logger.Log(LogLevel.Warning, confirmationLink); if (SignInManager.IsSignedIn(User) && User.IsInRole("Admin")) { return(RedirectToAction("ListUsers", "Administration")); } await UserManager.AddToRoleAsync(user, "Usuario"); await _EmailSender.SendEmailAsync(model.Email, "Confirme o seu Email", $"Por favor confirme o seu email <a href='{confirmationLink}'>clicando aqui</a>."); user.Cidade.AddUsuario(user); return(View("AfterRegister")); } foreach (var error in result.Errors) { ModelState.AddModelError("", error.Description); } } return(View(model)); }