Exemple #1
0
        public async Task <IActionResult> CambiarContrasena(CambioContrasenaViewModel model)
        {
            if (ModelState.IsValid)
            {
                var user = await _gestionUsuarios.GetUserAsync(User);

                if (user == null)
                {
                    return(RedirectToAction("Login"));
                }

                var result = await _gestionUsuarios.ChangePasswordAsync(user, model.ContrasenaActual, model.NuevaContrasena);

                if (!result.Succeeded)
                {
                    foreach (var error in result.Errors)
                    {
                        ModelState.AddModelError("", error.Description);
                    }
                    return(View());
                }
                await _gestionLogin.RefreshSignInAsync(user);

                return(View("CambiarContrasenaConfirmacion"));
            }
            return(View(model));
        }
        public async Task <IActionResult> Restablecer(string codigo)
        {
            CambioContrasenaViewModel cambioContrasena = null;
            var restablecimiento = await servicio.Buscar(codigo);

            if (restablecimiento == null)
            {
                cambioContrasena = new CambioContrasenaViewModel()
                {
                    IdRestablecimiento     = string.Empty,
                    ConfirmacionContrasena = string.Empty,
                    NuevaContrasena        = string.Empty,
                };
            }
            else
            {
                cambioContrasena = new CambioContrasenaViewModel()
                {
                    IdRestablecimiento     = codigo,
                    ConfirmacionContrasena = string.Empty,
                    NuevaContrasena        = string.Empty,
                };
            }

            return(View(cambioContrasena));
        }
        public async Task <IActionResult> Guardar(CambioContrasenaViewModel cambio)
        {
            if (!ModelState.IsValid)
            {
                return(View("Restablecer", cambio));
            }

            var restablecimiento = await servicio.Buscar(cambio.IdRestablecimiento);

            if (restablecimiento == null)
            {
                ModelState.AddModelError("", "Ocurrio un problema al restablecer la contrasena");
                return(View("Restablecer", cambio));
            }
            else
            {
                if (string.IsNullOrEmpty(cambio.NuevaContrasena.Trim()) || string.IsNullOrEmpty(cambio.ConfirmacionContrasena.Trim()))
                {
                    ModelState.AddModelError("", "La contrasena es requerida");
                    return(View("Restablecer", cambio));
                }

                if (!cambio.NuevaContrasena.Trim().Equals(cambio.ConfirmacionContrasena.Trim()))
                {
                    ModelState.AddModelError("", "Las contrasenas no coinciden");
                    return(View("Restablecer", cambio));
                }

                var usuario = await usuarioServicio.BuscarPorId(restablecimiento.IdUsuario);

                usuario.Contrasena = cambio.NuevaContrasena;
                await usuarioServicio.Actualizar(usuario);

                if (usuario == null)
                {
                    ModelState.AddModelError("", "Ocurrio un problema al restablecer la contrasena");
                    return(View("Restablecer", cambio));
                }

                await servicio.Eliminar(cambio.IdRestablecimiento);

                return(RedirectToAction("Login", "Usuario"));
            }
        }
Exemple #4
0
 public vwCambioContrasena()
 {
     InitializeComponent();
     BindingContext = cambioContrasenaViewModel = new CambioContrasenaViewModel(this);
     InitFormulario();
 }