예제 #1
0
        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));
        }
예제 #2
0
 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");
 }
예제 #3
0
        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));
        }