public JsonResult ValidateNetworkGraph() { var networkValidatorUrl = $"{NeptuneWebConfiguration.NereidUrl}/api/v1/network/validate"; var stopwatch = new Stopwatch(); stopwatch.Start(); var buildGraphStartTime = stopwatch.Elapsed; var graph = NereidUtilities.BuildNetworkGraph(HttpRequestStorage.DatabaseEntities); var buildGraphEndTime = stopwatch.Elapsed; var validateCallStartTime = stopwatch.Elapsed; var networkValidatorResult = NereidUtilities.RunJobAtNereid <Graph, NetworkValidatorResult>(graph, networkValidatorUrl, out _, HttpClient); var validateCallEndTime = stopwatch.Elapsed; stopwatch.Stop(); var returnValue = new { NetworkValidatorResult = networkValidatorResult, BuildGraphElapsedTime = (buildGraphEndTime - buildGraphStartTime).Milliseconds, ValidateGraphElapsedTime = (validateCallEndTime - validateCallStartTime).Milliseconds, NodeCount = graph.Nodes.Count, EdgeCount = graph.Edges.Count, }; return(Json(returnValue, JsonRequestBehavior.AllowGet)); }
public JsonResult SolutionTestCase() { var stopwatch = new Stopwatch(); stopwatch.Start(); var graph = NereidUtilities.BuildNetworkGraph(HttpRequestStorage.DatabaseEntities); // this subgraph is 23 nodes deep var single = graph.Nodes.Single(x => x.ID == "RSB_42"); var subgraph = graph.GetUpstreamSubgraph(single); var allLoadingInputs = HttpRequestStorage.DatabaseEntities.vNereidLoadingInputs.ToList(); var allModelingBMPs = NereidUtilities.ModelingTreatmentBMPs(HttpRequestStorage.DatabaseEntities).ToList(); var allWaterqualityManagementPlanNodes = NereidUtilities.GetWaterQualityManagementPlanNodes(HttpRequestStorage.DatabaseEntities).ToList(); var allModelingQuickBMPs = HttpRequestStorage.DatabaseEntities.QuickBMPs.Include(x => x.TreatmentBMPType) .Where(x => x.PercentOfSiteTreated != null && x.TreatmentBMPType.IsAnalyzedInModelingModule).ToList(); var responseContent = NereidUtilities.SolveSubgraph(subgraph, allLoadingInputs, allModelingBMPs, allWaterqualityManagementPlanNodes, allModelingQuickBMPs, out _, NereidController.HttpClient, true); var stopwatchElapsedMilliseconds = stopwatch.ElapsedMilliseconds; stopwatch.Stop(); return(Json(new { elapsed = stopwatchElapsedMilliseconds, responseContent }, JsonRequestBehavior.AllowGet)); }
public JsonResult SolutionSequence() { var solutionSequenceUrl = $"{NeptuneWebConfiguration.NereidUrl}/api/v1/network/solution_sequence?min_branch_size=12"; var stopwatch = new Stopwatch(); stopwatch.Start(); var buildGraphStartTime = stopwatch.Elapsed; var graph = NereidUtilities.BuildNetworkGraph(HttpRequestStorage.DatabaseEntities); var buildGraphEndTime = stopwatch.Elapsed; var solutionSequenceRequestObject = new SolutionSequenceRequest(graph); var subgraphCallStartTime = stopwatch.Elapsed; var solutionSequenceResult = NereidUtilities.RunJobAtNereid <SolutionSequenceRequest, SolutionSequenceResult>(solutionSequenceRequestObject, solutionSequenceUrl, out _, HttpClient); var subgraphCallEndTime = stopwatch.Elapsed; stopwatch.Stop(); var returnValue = new { SubgraphResult = solutionSequenceResult.Data, BuildGraphElapsedTime = (buildGraphEndTime - buildGraphStartTime).Milliseconds, SubgraphCallElapsedTime = (subgraphCallEndTime - subgraphCallStartTime).Milliseconds, NodeCount = graph.Nodes.Count, EdgeCount = graph.Edges.Count, }; return(Json(returnValue, JsonRequestBehavior.AllowGet)); }
public JsonResult Subgraph() { var subgraphUrl = $"{NeptuneWebConfiguration.NereidUrl}/api/v1/network/subgraph"; var stopwatch = new Stopwatch(); stopwatch.Start(); var buildGraphStartTime = stopwatch.Elapsed; var graph = NereidUtilities.BuildNetworkGraph(HttpRequestStorage.DatabaseEntities); var buildGraphEndTime = stopwatch.Elapsed; var subgraphRequestObject = new NereidSubgraphRequestObject(graph, new List <Node> { new Node("BMP_39") }); var subgraphCallStartTime = stopwatch.Elapsed; var subgraphResult = NereidUtilities.RunJobAtNereid <NereidSubgraphRequestObject, SubgraphResult>(subgraphRequestObject, subgraphUrl, out _, HttpClient); var subgraphCallEndTime = stopwatch.Elapsed; stopwatch.Stop(); var returnValue = new { SubgraphResult = subgraphResult, BuildGraphElapsedTime = (buildGraphEndTime - buildGraphStartTime).Milliseconds, SubgraphCallElapsedTime = (subgraphCallEndTime - subgraphCallStartTime).Milliseconds, NodeCount = graph.Nodes.Count, EdgeCount = graph.Edges.Count, }; return(Json(returnValue, JsonRequestBehavior.AllowGet)); }
public ContentResult NetworkTable() { var graph = NereidUtilities.BuildNetworkGraph(HttpRequestStorage.DatabaseEntities); return(Content(JsonConvert.SerializeObject(graph), "application/json")); }