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([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)); }