public async Task <ActionResult> ChangePassword(ChangePasswordViewModel model) { var db = new inf245netsoft(); string correo = User.Identity.Name; CuentaUsuario cliente = db.CuentaUsuario.Where(c => c.correo == correo).First(); if (cliente.contrasena == model.OldPassword) { if (cliente.contrasena != model.NewPassword) { if (model.NewPassword == model.ConfirmPassword) { var result = await UserManager.ChangePasswordAsync(User.Identity.GetUserId(), model.OldPassword, model.NewPassword); if (result.Succeeded) { var user = await UserManager.FindByIdAsync(User.Identity.GetUserId()); cliente.contrasena = model.NewPassword; db.SaveChanges(); TempData["tipo"] = "alert alert-success"; TempData["message"] = "Contraseña cambiada Exitosamente"; if (user != null) { await SignInManager.SignInAsync(user, isPersistent : false, rememberBrowser : false); } /*Aca deberia retornarte a MiCuenta de CuentaUsuario*/ return(RedirectToAction("MiCuenta", "CuentaUsuario")); } else { ModelState.AddModelError("NewPassword", "Las contraseñas deben tener 6 caracteres como mínimo y una combinación de caracteres especiales, letras, letras mayúsculas y números"); } } else { //cuando la contraseña nueva y la confirmacion no son iguales ModelState.AddModelError("ConfirmPassword", "Las contraseñas no coinciden"); } } else { //contrseña actual igual a la contraseña nueva ModelState.AddModelError("NewPassword", "Ingrese una contraseña diferente a la actual."); /*var result = await UserManager.ChangePasswordAsync(User.Identity.GetUserId(), model.OldPassword, model.NewPassword); * if (!result.Succeeded) * { * ModelState.AddModelError("NewPassword", "Las contraseñas deben tener 6 caracteres como mínimo y una combinación de caracteres especiales, letras, letras mayúsculas y números"); * }*/ } } else { //contreña actual diferente a la ingresa ModelState.AddModelError("OldPassword", "Contraseña ingresada no es correcta"); } return(View(model)); }
public string reservarOrganizador(PaqueteEntradas paquete) { try { using (var context = new inf245netsoft()) { try { if (paquete.tieneAsientos) { for (int i = 0; i < paquete.cantEntradas; i++) { int col = paquete.columnas[i]; int fil = paquete.filas[i]; List <Asientos> listasiento = context.Asientos.Where(x => x.codZona == paquete.idZona && x.fila == fil && x.columna == col).ToList(); AsientosXFuncion actAsiento = context.AsientosXFuncion.Find(listasiento.First().codAsiento, paquete.idFuncion); actAsiento.estado = "RESERVAORGANIZADOR"; } } else { ZonaxFuncion ZXF = context.ZonaxFuncion.Find(paquete.idFuncion, paquete.idZona); if (ZXF.cantLibres < paquete.cantEntradas) { return("No hay suficientes entradas"); } ZXF.cantLibres -= paquete.cantEntradas; ZXF.cantReservaOrganizador += paquete.cantEntradas; } context.SaveChanges(); } catch (OptimisticConcurrencyException ex) { return("No se pudieron reservar los asientos, alguien más ya lo hizo."); } } } catch (Exception ex) { return("Ocurrio un error inesperado."); } //Funciones Utilitarias necesarias //BuscarEntradasLeQuedan( User , Funcion ) return("Ok"); }
public ActionResult ReservaOrganizador(ReservaOrganizadorModel model) { using (var context = new inf245netsoft()) { try { for (int i = 0; i < model.idFuncion.Length; i++) { if (model.eliminar[i]) { if (model.idAsiento[i] < 0) { var ZXF = context.ZonaxFuncion.Find(model.idFuncion[i], model.idZona[i]); ZXF.cantReservaOrganizador--; ZXF.cantLibres++; } else { var asientoReal = context.AsientosXFuncion.Find(model.idAsiento[i], model.idFuncion[i]); asientoReal.estado = "libre"; } } } context.SaveChanges(); } catch (OptimisticConcurrencyException ex) { TempData["tipo"] = "alert alert-warning"; TempData["message"] = "No se pudieron cancelar las reservas"; Redirect("~/Evento/verReservaOrganizador?evento=" + model.idEvento); } } TempData["tipo"] = "alert alert-success"; TempData["message"] = "Las reservas se cancelaron correctamente"; return(Redirect("~/Evento/verReservaOrganizador?evento=" + model.idEvento)); }