public ActionResult Valorar(int id, int pedido, int valoracion) { try { // TODO: Add update logic here SessionInitialize(); PracticaGenNHibernate.Enumerated.Practica.TipoValoracionEnum valor = PracticaGenNHibernate.Enumerated.Practica.TipoValoracionEnum.sin_valorar; LineaPedidoCEN linPed = new LineaPedidoCEN(new LineaPedidoCAD()); PedidoCEN pedi = new PedidoCEN(new PedidoCAD(session)); PedidoEN pedEN = pedi.ReadOID(pedido); IList <LineaPedidoEN> lineas = pedEN.LineaPedido; switch (valoracion) { case 1: valor = PracticaGenNHibernate.Enumerated.Practica.TipoValoracionEnum.mala; break; case 2: valor = PracticaGenNHibernate.Enumerated.Practica.TipoValoracionEnum.regular; break; case 3: valor = PracticaGenNHibernate.Enumerated.Practica.TipoValoracionEnum.buena; break; case 4: valor = PracticaGenNHibernate.Enumerated.Practica.TipoValoracionEnum.muybuena; break; case 5: valor = PracticaGenNHibernate.Enumerated.Practica.TipoValoracionEnum.excelente; break; } linPed.ValorarLinea(id, valor); int contador = 0; //compruebo que todas las chismas han sido valoradas, y si es asi llamo a calcularmedia foreach (LineaPedidoEN lin in lineas) { if (lin.Valoracion != PracticaGenNHibernate.Enumerated.Practica.TipoValoracionEnum.sin_valorar) { contador++; if (contador == lineas.Count) { return(RedirectToAction("CalcularMedia", "Pedido", new { id = pedido })); } } } SessionClose(); return(RedirectToAction("PedidosUsuario", "Account")); } catch { return(View()); } }