public async Task <IActionResult> ComenzarRecuperacion(CorreoViewModel model) { if (!ModelState.IsValid) { return(View(model)); } var usuario = await _context.Usuarios .FirstOrDefaultAsync(u => u.Correo == model.Correo); if (usuario != null) { RecuperaContrasenia recupera = new RecuperaContrasenia(); recupera.IdUsuario = usuario.IdUsuario; recupera.Token = GenerarToken(); recupera.FechaModifica = DateTime.Now; recupera.IpModifica = Request.HttpContext.Connection.RemoteIpAddress.MapToIPv4().ToString(); _context.Add(recupera); await _context.SaveChangesAsync(); // Enviamos correo UtilsMethods.EnviarCorreo(usuario, recupera.Token); ViewBag.Message = "Se ha enviado un correo con un link de recuperación"; } return(View()); }
public async Task <IActionResult> Create(RegistroViewModel model) { if (ModelState.IsValid) { Usuario usuario = new Usuario(); usuario.NombreUsuario = model.Username; usuario.Correo = model.Correo; usuario.Salt = UtilsMethods.GenerarSalt(); usuario.Contrasenia = Crypto.HashPassword(model.Contrasenia + usuario.Salt); usuario.IdRol = 2; usuario.FechaModifica = DateTime.Now; usuario.IpModifica = Request.HttpContext.Connection.RemoteIpAddress.MapToIPv4().ToString(); _context.Add(usuario); await _context.SaveChangesAsync(); int ultimoUsuario = _context.Usuarios. OrderByDescending(u => u.IdUsuario).FirstOrDefault().IdUsuario; Cliente cliente = new Cliente(); cliente.Nombre = model.Nombres; cliente.Apellidos = model.Apellidos; cliente.Direccion = model.Direccion; cliente.Genero = model.Genero; cliente.IdUsuario = ultimoUsuario; cliente.FechaModifica = DateTime.Now; cliente.IpModifica = Request.HttpContext.Connection.RemoteIpAddress.MapToIPv4().ToString(); _context.Add(cliente); await _context.SaveChangesAsync(); UtilsMethods.EnviarCorreo(usuario); return(RedirectToAction(nameof(Index))); } return(View(model)); }