public ActionResult addlinea(int id, int idpro) { SessionInitialize(); CarritoCAD cad = new CarritoCAD(session); CarritoCEN cen = new CarritoCEN(cad); CarritoEN en = cen.ReadOID(id); EventoCEN cene = new EventoCEN(); EventoEN ene = cene.ReadOID(idpro); ProductoCEN cenp = new ProductoCEN(); ProductoEN enp = cenp.ReadOID(idpro); AssemblerCarrito ass = new AssemblerCarrito(); Carrito sol = ass.ConvertENToModelUI(en); IList <Lineas_pedidoEN> ten = en.Lineas_pedido; AssemblerLineas_pedido assc = new AssemblerLineas_pedido(); IList <Lineas_pedido> solc = assc.ConvertListENToModel(ten); Lineas_pedidoCEN den = new Lineas_pedidoCEN(); string tipo = null; Boolean si = false; double precio = 0; foreach (Lineas_pedido linea in solc) { if (linea.articulo == idpro) { si = true; if (linea.stock != linea.cantidad) { den.Modify(linea.id, (linea.cantidad + 1)); } tipo = linea.tipo; precio = linea.precio; } } if (si == false) { int h = den.New_(id, 1); if (ene != null) { den.Addevento(h, idpro); tipo = "Evento"; precio = ene.Precio; } else { den.Addproducto(h, idpro); tipo = "Producto"; precio = enp.Precio; } List <int> lista = new List <int>(); lista.Add(h); cen.Addlinea(id, lista); } SessionClose(); precio = precio + sol.Precio; CarritoCEN fin = new CarritoCEN(); fin.Modify(id, precio); ViewData["correo"] = System.Web.HttpContext.Current.Session["correo"] as string; // ViewData["action"] = "Details"; return(RedirectToAction("Details", tipo, new { id = idpro })); }