Ejemplo n.º 1
0
        public async Task <IActionResult> Edit(int id, [Bind("IdProducto,Nombre,Descripcion,Precio,Stock,Imagen,IdMarca,IdCategoria,IdTipo,Habilitado,FechaModifica,IpModifica")] Producto producto)
        {
            if (id != producto.IdProducto)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(producto);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!ProductoExists(producto.IdProducto))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            ViewData["IdCategoria"] = new SelectList(_context.Categorias, "IdCategoria", "IpModifica", producto.IdCategoria);
            ViewData["IdMarca"]     = new SelectList(_context.Marcas, "IdMarca", "IpModifica", producto.IdMarca);
            ViewData["IdTipo"]      = new SelectList(_context.Tipos, "IdTipo", "IpModifica", producto.IdTipo);
            return(View(producto));
        }
        public async Task <IActionResult> Edit(int id, RegistroViewModel model)
        {
            if (id != model.IdUsuario)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                var cliente = await _context.Clientes.Include(c => c.IdUsuarioNavigation).FirstOrDefaultAsync(c => c.IdCliente == id);

                var usuario = cliente.IdUsuarioNavigation;
                try
                {
                    usuario.NombreUsuario = model.Username;
                    usuario.Correo        = model.Correo;
                    usuario.FechaModifica = DateTime.Now;
                    usuario.IpModifica    = Request.HttpContext.Connection.RemoteIpAddress.MapToIPv4().ToString();

                    cliente.Nombre        = model.Nombres;
                    cliente.Apellidos     = model.Apellidos;
                    cliente.Genero        = model.Genero;
                    cliente.Direccion     = model.Direccion;
                    cliente.FechaModifica = DateTime.Now;
                    cliente.IpModifica    = Request.HttpContext.Connection.RemoteIpAddress.MapToIPv4().ToString();
                    _context.Update(usuario);
                    _context.Update(cliente);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!UsuarioExists(model.IdUsuario))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            return(View(model));
        }
Ejemplo n.º 3
0
        public async Task <IActionResult> Recuperacion(RecuperacionViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            var usuario = await _context.RecuperaContrasenias.Include(u => u.IdUsuarioNavigation)
                          .FirstOrDefaultAsync(u => u.Token == model.Token);

            if (usuario != null)
            {
                if (usuario.IdUsuarioNavigation != null)
                {
                    Usuario user = usuario.IdUsuarioNavigation;
                    user.Salt          = UtilsMethods.GenerarSalt();
                    user.Contrasenia   = CryptoHelper.Crypto.HashPassword(model.Contrasenia + user.Salt);
                    user.FechaModifica = DateTime.Now;
                    user.IpModifica    = Request.HttpContext.Connection.RemoteIpAddress.MapToIPv4().ToString();

                    usuario.Token = "Expired";
                    _context.Update(usuario);
                    _context.Update(user);
                    await _context.SaveChangesAsync();

                    ViewBag.Message = "Contraseña modificada con éxito";
                    return(View(nameof(Index)));
                }
            }
            else
            {
                ViewBag.Error = "Token no válido";
                return(View("Index"));
            }

            return(View(model));
        }