示例#1
0
        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());
        }
示例#2
0
        public async Task <IActionResult> Create([Bind("IdProducto,Nombre,Descripcion,Precio,Stock,ImageFile,IdMarca,IdCategoria,IdTipo")] Producto producto)
        {
            if (ModelState.IsValid)
            {
                // Agregamos la imagen a la carpeta Image
                string wwwRootPath = _hostEnvironment.WebRootPath;
                string fileName    = Path.GetFileNameWithoutExtension(producto.ImageFile.FileName);
                string extension   = Path.GetExtension(producto.ImageFile.FileName);
                producto.Imagen = fileName = fileName + DateTime.Now.ToString("yymmssfff") + extension;
                string path = Path.Combine(wwwRootPath + "/Image/", fileName);
                using (var fileStream = new FileStream(path, FileMode.Create))
                {
                    await producto.ImageFile.CopyToAsync(fileStream);
                }

                producto.FechaModifica = DateTime.Now;
                producto.IpModifica    = Request.HttpContext.Connection.RemoteIpAddress.MapToIPv4().ToString();

                _context.Add(producto);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            ViewData["IdCategoria"] = new SelectList(_context.Categorias, "IdCategoria", "Nombre", producto.IdCategoria);
            ViewData["IdMarca"]     = new SelectList(_context.Marcas, "IdMarca", "Nombre", producto.IdMarca);
            ViewData["IdTipo"]      = new SelectList(_context.Tipos, "IdTipo", "Nombre", producto.IdTipo);
            return(View(producto));
        }
        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));
        }