public async Task <IActionResult> Edit(string nombreCodificador, string email, string token, [Bind("UserId,CodificadorId,FaseId")] UserFaseCodificador userFaseCodificador) { if (userFaseCodificador.UserId == null) { return(NotFound()); } if (ModelState.IsValid) { try { _context.Update(userFaseCodificador); var usuario = new User() { UserId = userFaseCodificador.UserId, Token = token, TokenExpiration = DateTime.Now.AddDays(2) }; _context.Attach(usuario); _context.Entry(usuario).Property(x => x.Token).IsModified = true; _context.Entry(usuario).Property(x => x.TokenExpiration).IsModified = true; var codificador = new Codificador() { CodificadorId = userFaseCodificador.CodificadorId, NombreCodificador = nombreCodificador, Email = email }; _context.Attach(codificador); _context.Entry(codificador).Property(x => x.NombreCodificador).IsModified = true; _context.Entry(codificador).Property(x => x.Email).IsModified = true; await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!UserFaseCodificadorExists(userFaseCodificador.UserId) || !UserExists(userFaseCodificador.UserId) || !CodificadorExists(userFaseCodificador.CodificadorId)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } ViewData["FaseId"] = new SelectList(_context.Fase, "FaseId", "NombreFase", userFaseCodificador.FaseId); return(View(new Models.UserFaseCodViewModel(userFaseCodificador))); }
public async Task <IActionResult> ForgotPassword(string Username) { User usuario = null; string email = ""; if (Username.Length == 5) { usuario = _context.User.FirstOrDefault(u => u.UserId == Username); if (usuario != null) { var userfasecod = await _context.UserFaseCodificador.Where(f => f.UserId == usuario.UserId).SingleOrDefaultAsync(); if (userfasecod != null) { var codificador = await _context.Codificador.Where(e => e.CodificadorId == userfasecod.CodificadorId).SingleOrDefaultAsync(); if (codificador != null) { email = codificador.Email; } } } } if (usuario == null) { if (Tools.IsValidEmail(Username)) { var codificador = await _context.Codificador.Where(e => e.Email == Username).SingleOrDefaultAsync(); if (codificador != null) { var userfasecod = await _context.UserFaseCodificador.Where(f => f.CodificadorId == codificador.CodificadorId).SingleOrDefaultAsync(); if (userfasecod != null) { usuario = await _context.User.Where(u => u.UserId == userfasecod.UserId).SingleOrDefaultAsync(); if (usuario != null) { email = Username; } } } } } if (email != "") { string token = Tools.getToken(); usuario.Token = token; usuario.TokenExpiration = DateTime.Now.AddDays(2); _context.Attach(usuario); _context.Entry(usuario).Property(x => x.Token).IsModified = true; _context.Entry(usuario).Property(x => x.TokenExpiration).IsModified = true; await _context.SaveChangesAsync(); HttpResponseMessage response = await SendMailResetPassword(email, usuario.UserId, token); } TempData["Message"] = "MailSent"; return(View(new ForgotPasswordViewModel { Username = Username })); }