Пример #1
0
        public async Task <IActionResult> Register()
        {
            var cidades = await _CidadeService.FindAllAsync();

            var model = new RegistrarUsuarioFormViewModel {
                Cidades = cidades
            };

            return(View(model));
        }
Пример #2
0
        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));
        }