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; }
public ActionResult _CrearCSPF(CSPFViewModel newModel) { //if (!string.IsNullOrWhiteSpace(runDijkstra)) if (newModel.saveDijkstra != "true") { //Ejecuta codigo del algoritmo if (ModelState.IsValid) { //Inicio preparacion de la topologia List<NodoDijkstra> listaNodos = Proyecto.SelectListaRoutersDijkstra(newModel.idProyecto); List<EnlaceDijkstra> listaEnlaces = Proyecto.SelectListaEnlacesDijkstra(newModel.idProyecto); foreach(var item in listaEnlaces) { //Pasando las referencias a los enlaces de la lista de nodos item.target = new NodoDijkstra(); item.targetA = listaNodos.Find(x => x.idRouter == item.idRouterA); item.targetB = listaNodos.Find(x => x.idRouter == item.idRouterB); } foreach(var node in listaNodos) { node.listaEnlacesDijkstra = new List<EnlaceDijkstra>(); foreach (var link in listaEnlaces) { if (link.idRouterA == node.idRouter) { EnlaceDijkstra temp = link.Clone(); temp.target = link.targetB; node.listaEnlacesDijkstra.Add(temp); } else if (link.idRouterB == node.idRouter) { EnlaceDijkstra temp = link.Clone(); temp.target = link.targetA; node.listaEnlacesDijkstra.Add(temp); } } } //Fin preparacion de la topologia //Jala el nodo que servira como punto de partida para el algoritmo NodoDijkstra RouterOrigen = listaNodos.Find(x => x.idRouter == newModel.nRouterOrigen); List<NodoDijkstra> routerQueue = new List<NodoDijkstra>(); routerQueue = Dijkstra.GenerarRutas(RouterOrigen, newModel.idProyecto, newModel.nBandwidth, newModel.nTipoMetrica, newModel.idAfinidad); NodoDijkstra RouterDestino = routerQueue.FirstOrDefault(x => x.idRouter == newModel.nRouterDestino); List<NodoDijkstra> result = new List<NodoDijkstra>(); result = Dijkstra.GetRutaMasCortaHasta(RouterDestino); List<EnlaceDijkstra> listaEnlacesLSP = result.ToEnlaces(listaEnlaces); string literal = result.To_String(); //Remueve las referencias a los objetos_routers de los enlaces //var query = someList.Select(x => { x.SomeProp = "foo"; return x; }) List<EnlaceDijkstra> query = listaEnlacesLSP.Select( x => { x.target = null; x.targetA = null; x.targetB = null; return x; }).ToList(); return Json(new { path = query, node_string = literal, success = true, operation = "run_algorithm" }); } else { return Json(new { path = new List<EnlaceDijkstra>(), node_string = "", success = false }); } } else { if (ModelState.IsValid) { //TODO: Completar esta funcion //List<Enlace> listaEnlacesLSP = newModel.calculatedPath.ToEnlaces(newModel.idProyecto); try { LSP newlink = new LSP(); newlink.idProyecto = newModel.idProyecto; newlink.idLSP = newModel.idLSP; newlink.cNombre = newModel.cNombre; newlink.idRouterOrigen = newModel.nRouterOrigen; newlink.idRouterDestino = newModel.nRouterDestino; newlink.nBandwidth = newModel.nBandwidth; int newEnlace = newlink.InsertUpdateLSPHeader(); LSP newThingModel = new LSP(); foreach(var item in newModel.listaEnlacesPath) { newThingModel.idProyecto = newModel.idProyecto; newThingModel.idLSP = newEnlace; int reservado = (int)(item.nBandwidth - item.nBandwidthDisponible); newThingModel.InsertDetalleLSP(item.idEnlace, reservado); } return Json(new { success = true, operation = "save" }); } catch (Exception ex) { return Json(new { success = false }); } } return Json(new { success = false }); } }
public ActionResult _EditarLSP(int idProyecto, int idLSP) { LSP newModel = new LSP(idProyecto, idLSP); return PartialView(newModel); }
public ActionResult _CrearLSP(int idProyecto) { LSP newModel = new LSP(idProyecto); return PartialView(newModel); }
public ActionResult _EditarLSP(LSP newModel) { return PartialView(); }
public ActionResult _CrearLSP(int idProyecto) { LSP newModel = new LSP(); newModel.listaNodosOrigen = LSP.ConvertDropdownNodosDisponibles(LSP.SelectListaNodosDisponibles(idProyecto, null, 0)); newModel.listaNextHop = new List<SelectListItem>(); return PartialView(newModel); }