public LSP(int idProyecto, int idLSP) { //Lee los datos de la tabla de LSP_Header Data.dsTopologiaTableAdapters.LSPsTableAdapter HeaderAdapter = new Data.dsTopologiaTableAdapters.LSPsTableAdapter(); Data.dsTopologia.LSPsDataTable hdt = HeaderAdapter.SeleccionarListaLSPs(idProyecto, idLSP); foreach(var dr in hdt) { this.idProyecto = dr.idProyecto; this.idLSP = dr.idLSP; if (!dr.IscNombreNull()) this.cNombre = dr.cNombre.Trim(); if (!dr.IsnBandwidthNull()) this.nBandwidth = dr.nBandwidth; this.idRouterOrigen = dr.idRouterOrigen; this.idRouterDestino = dr.idRouterDestino; if (!dr.IsnSetupPriorityNull()) this.nSetupPriority = dr.nSetupPriority; if (!dr.IsnHoldPriorityNull()) this.nHoldPriority = dr.nHoldPriority; } //Agrega router_origen al stack de nodos Stack<Router> stackNodos = new Stack<Router>(); stackNodos.Push(new LER(this.idRouterOrigen, this.idProyecto)); //Bucle que agrega los routers de la lista de enlaces Data.dsTopologiaTableAdapters.EnlacesLSPsTableAdapter DetailAdapter = new Data.dsTopologiaTableAdapters.EnlacesLSPsTableAdapter(); Data.dsTopologia.EnlacesLSPsDataTable ddt = DetailAdapter.SeleccionarListaEnlacesLSPs(idProyecto, idLSP); foreach(var dr in ddt) { Enlace temp = new Enlace(dr.idLSP, dr.idProyecto); Router lastNode = stackNodos.Peek(); //Agrega el router asociado al enlace que no esta en el tope del stack if (lastNode.idRouter != temp.idRouterA) stackNodos.Push(new LSR(temp.idRouterA, this.idProyecto)); else stackNodos.Push(new LSR(temp.idRouterB, this.idProyecto)); } //Finalmente, agrega router_destino al stack de nodos stackNodos.Push(new LER(this.idRouterDestino, this.idProyecto)); //Convierte el stack a una lista this.listaNodos = stackNodos.ToList(); //Populando los selectlists this.listaNodosOrigen = LSP.ConvertDropdownNodosDisponibles(LSP.SelectListaNodosDisponibles(idProyecto, null, 0)); this.listaNextHop = new List<SelectListItem>(); }
public static List<LSP> SelectListaLSP(int idProyecto) { List<LSP> listaLSP = new List<LSP>(); Data.dsTopologiaTableAdapters.LSPsTableAdapter Adapter = new Data.dsTopologiaTableAdapters.LSPsTableAdapter(); Data.dsTopologia.LSPsDataTable dt = Adapter.SeleccionarListaLSPs(idProyecto, null); foreach(var dr in dt) { LSP temp = new LSP(); temp.idProyecto = dr.idProyecto; temp.idLSP = dr.idLSP; if (!dr.IscNombreNull()) temp.cNombre = dr.cNombre.Trim(); if (!dr.IsnBandwidthNull()) temp.nBandwidth = dr.nBandwidth; temp.idRouterOrigen = dr.idRouterOrigen; temp.idRouterDestino = dr.idRouterDestino; if (!dr.IsnSetupPriorityNull()) temp.nSetupPriority = dr.nSetupPriority; if (!dr.IsnHoldPriorityNull()) temp.nHoldPriority = dr.nHoldPriority; listaLSP.Add(temp); } return listaLSP; }