Example #1
0
        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>();
        }
Example #2
0
        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;
        }