Пример #1
0
        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)));
        }
Пример #2
0
        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
            }));
        }