public IActionResult EliminarCuenta(string correo, string contra) { celularesContext context = new celularesContext(); try { UsuarioRepository <Usuario> reposUsuario = new UsuarioRepository <Usuario>(context); var usuario = reposUsuario.GetUserByEmail(correo); if (usuario != null) { if (HashingHelpers.GetHelper(contra) == usuario.Contrasena) { reposUsuario.Delete(usuario); } else { ModelState.AddModelError("", "La contraseña Mexcel introducida es incorrecta, intentelo de nuevo."); return(View()); } } return(RedirectToAction("IniciarSesion")); } catch (Exception) { ModelState.AddModelError("", "Ocurrió un error. Inténtelo de nuevo en otro momento."); return(View()); } }
public async Task <IActionResult> InicioDeSesionAdmin(Administrador ad) { celularesContext context = new celularesContext(); UsuarioRepository <Administrador> directorRepos = new UsuarioRepository <Administrador>(context); var director = context.Administrador.FirstOrDefault(x => x.Clave == ad.Clave); try { if (director != null && director.Contrasena == HashHelp.GetHelper(ad.Contrasena)) { List <Claim> info = new List <Claim>(); info.Add(new Claim(ClaimTypes.Name, "Usuario" + director.Nombre)); info.Add(new Claim(ClaimTypes.Role, "Admin")); info.Add(new Claim("Clave", director.Nombre.ToString())); info.Add(new Claim("Nombre", director.Nombre)); var claimsidentity = new ClaimsIdentity(info, CookieAuthenticationDefaults.AuthenticationScheme); var claimsprincipal = new ClaimsPrincipal(claimsidentity); await HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, claimsprincipal, new AuthenticationProperties { IsPersistent = true }); return(RedirectToAction("Index")); } else { ModelState.AddModelError("", "La clave o la contraseña del administrador son incorrectas."); return(View(ad)); } } catch (Exception ex) { ModelState.AddModelError("", ex.Message); return(View(ad)); } }
public IActionResult Activar(int codigo) { celularesContext context = new celularesContext(); UsuarioRepository <Usuario> reposUsuario = new UsuarioRepository <Usuario>(context); var usuario = context.Usuario.FirstOrDefault(x => x.Codigo == codigo); if (usuario != null && usuario.Activo == 0) { var cgo = usuario.Codigo; if (codigo == cgo) { usuario.Activo = 1; reposUsuario.Edit(usuario); return(RedirectToAction("IniciarSesion")); } else { ModelState.AddModelError("", "Tu codigo para Mexcel no es correcto, intentalo de nuevo."); return(View((object)codigo)); } } else { ModelState.AddModelError("", "El usuario no existe en nuestra plataforma."); return(View((object)codigo)); } }
public IActionResult Index(string id) { celularesContext context = new celularesContext(); Repositories.Repository repos = new Repositories.Repository(); return(View(repos.GetAll().OrderBy(x => x.Id))); }
public IActionResult Registrar(Usuario us, string contrasena, string contrasena2) { celularesContext context = new celularesContext(); try { UsuarioRepository <Usuario> reposUsuario = new UsuarioRepository <Usuario>(context); if (context.Usuario.Any(x => x.Correo == us.Correo)) { ModelState.AddModelError("", "Este usuario ya forma parte de Mexcel."); return(View(us)); } else { if (contrasena == contrasena2) { us.Contrasena = HashingHelpers.GetHelper(contrasena); us.Codigo = CodeHelper.GetCodigo(); us.Activo = 0; reposUsuario.Insert(us); MailMessage mensajeXperience = new MailMessage(); mensajeXperience.From = new MailAddress("*****@*****.**", "Mexcel"); mensajeXperience.To.Add(us.Correo); mensajeXperience.Subject = "Verifica tu correo para Mexcel"; string text = System.IO.File.ReadAllText(Enviroment.WebRootPath + "/ConfirmacionDeCorreo.html"); mensajeXperience.Body = text.Replace("{##codigo##}", us.Codigo.ToString()); mensajeXperience.IsBodyHtml = true; SmtpClient clienteXperience = new SmtpClient("smtp.gmail.com", 587); clienteXperience.EnableSsl = true; clienteXperience.UseDefaultCredentials = false; clienteXperience.Credentials = new NetworkCredential("*****@*****.**", "sistemas7g"); clienteXperience.Send(mensajeXperience); return(RedirectToAction("Activar")); } else { ModelState.AddModelError("", "Ambas contraseñas no coinciden entre sí, intentalo de nuevo."); return(View(us)); } } } catch (Exception ex) { ModelState.AddModelError("", ex.Message); return(View(us)); } }
public IActionResult Imagen(uint id) { celularesContext context = new celularesContext(); Repository repos = new Repository(); AdminCelularesViewModel vm = new AdminCelularesViewModel(); vm.Marcas = repos.GetMarca(); vm.Smartphones = repos.GetCelById(id); if (System.IO.File.Exists(Enviroment.WebRootPath + $"/CatalogoS/{vm.Smartphones.Id}.jpg")) { vm.Imagen = vm.Smartphones.Id + ".jpg"; } else { vm.Imagen = "NoDisp.jpg"; } return(View(vm)); }
public async Task <IActionResult> IniciarSesion(Usuario us, bool mantener) { celularesContext context = new celularesContext(); UsuarioRepository <Usuario> reposUsuario = new UsuarioRepository <Usuario>(context); var datos = reposUsuario.GetUserByEmail(us.Correo); if (datos != null && HashingHelpers.GetHelper(us.Contrasena) == datos.Contrasena) { if (datos.Activo == 1) { List <Claim> info = new List <Claim>(); info.Add(new Claim(ClaimTypes.Name, "Usuario" + datos.NombreUsuario)); info.Add(new Claim(ClaimTypes.Role, "Cliente")); info.Add(new Claim("Correo", datos.Correo)); info.Add(new Claim("Nombre", datos.NombreUsuario)); var claimsidentity = new ClaimsIdentity(info, CookieAuthenticationDefaults.AuthenticationScheme); var claimsprincipal = new ClaimsPrincipal(claimsidentity); if (mantener == true) { await HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, claimsprincipal, new AuthenticationProperties { IsPersistent = true }); } else { await HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, claimsprincipal, new AuthenticationProperties { IsPersistent = false }); } return(RedirectToAction("Index")); } else { ModelState.AddModelError("", "Activa tu cuenta para poder iniciar sesión en Mexcel."); return(View(us)); } } else { ModelState.AddModelError("", "El correo electrónico o la contraseña son incorrectas."); return(View(us)); } }
public IActionResult RecuperarContra(string correo) { try { celularesContext context = new celularesContext(); UsuarioRepository <Usuario> repository = new UsuarioRepository <Usuario>(context); var usuario = repository.GetUserByEmail(correo); if (usuario != null) { var contraTemp = CodeHelper.GetCodigo(); MailMessage mensaje = new MailMessage(); mensaje.From = new MailAddress("*****@*****.**", "Mexcel"); mensaje.To.Add(correo); mensaje.Subject = "Recupera tu contraseña en Mexcel"; string text = System.IO.File.ReadAllText(Enviroment.WebRootPath + "/RecuperacionDeContrasena.html"); mensaje.Body = text.Replace("{##contraTemp##}", contraTemp.ToString()); mensaje.IsBodyHtml = true; SmtpClient cliente = new SmtpClient("smtp.gmail.com", 587); cliente.EnableSsl = true; cliente.UseDefaultCredentials = false; cliente.Credentials = new NetworkCredential("*****@*****.**", "sistemas7g"); cliente.Send(mensaje); usuario.Contrasena = HashingHelpers.GetHelper(contraTemp.ToString()); repository.Edit(usuario); return(RedirectToAction("IniciarSesion")); } else { ModelState.AddModelError("", "El correo Mexcel no se encuentra registrado en nuestra página."); return(View()); } } catch (Exception ex) { ModelState.AddModelError("", ex.Message); return(View((object)correo)); } }
public IActionResult CambiarContra(string correo, string contra, string nuevaContrasena, string nvaContrasena) { celularesContext context = new celularesContext(); try { UsuarioRepository <Usuario> reposUsuario = new UsuarioRepository <Usuario>(context); var usuario = reposUsuario.GetUserByEmail(correo); if (usuario.Contrasena != HashingHelpers.GetHelper(contra)) { ModelState.AddModelError("", "La contraseña Mexcel es incorrecta."); return(View()); } else { if (nuevaContrasena != nvaContrasena) { ModelState.AddModelError("", "Ambas contraseñas no coinciden entre sí, intentelo de nuevo."); return(View()); } else if (usuario.Contrasena == HashingHelpers.GetHelper(nuevaContrasena)) { ModelState.AddModelError("", "Esta introduciendo una contraseña antigua, intentelo una cez mas con una contaseña distinta."); return(View()); } else { usuario.Contrasena = HashingHelpers.GetHelper(nuevaContrasena); reposUsuario.Edit(usuario); return(RedirectToAction("IniciarSesion")); } } } catch (Exception ex) { ModelState.AddModelError("", ex.Message); return(View()); } }
public UsuarioRepository(celularesContext context) { Context = context; }