private ExecutionPlanRoot InitializeRoot() { ExecutionPlanRoot root = new ExecutionPlanRoot(); foreach (var plan in jObject.SelectTokens("..planTree")) { root.StartupCost = plan.First.First.SelectToken("startup_cost").Value <decimal>(); root.TotalCost = plan.First.First.SelectToken("total_cost").Value <decimal>(); } foreach (var plan in jObject.SelectTokens("..lefttree")) { if (plan.ToString() != "<>") { var node = new ExecutionPlanNode(); node.StartupCost = plan.First.First.SelectToken("startup_cost").Value <decimal>(); node.TotalCost = plan.First.First.SelectToken("total_cost").Value <decimal>(); root.Plans.Add(node); } } foreach (var plan in jObject.SelectTokens("..rightrree")) { if (plan.ToString() != "<>") { var node = new ExecutionPlanNode(); node.StartupCost = plan.First.First.SelectToken("startup_cost").Value <decimal>(); node.TotalCost = plan.First.First.SelectToken("total_cost").Value <decimal>(); root.Plans.Add(node); } } return(root); }
private ExecutionPlanRoot InitializeRoot() { ExecutionPlanRoot root = new ExecutionPlanRoot(); var rootPlan = jObject.SelectToken("..Plan"); root.StartupCost = rootPlan.SelectToken("['Startup Cost']").Value <decimal>(); root.TotalCost = rootPlan.SelectToken("['Total Cost']").Value <decimal>(); var indexToken = rootPlan.SelectToken("['Index Name']"); if (indexToken != null) { root.IndexName = indexToken.Value <String>(); if (root.IndexName.StartsWith("\"")) // index name is in " { root.IndexName = root.IndexName.Substring(1); root.IndexName = root.IndexName.Substring(0, root.IndexName.Length - 1); root.IndexName = root.IndexName.Trim(); } } foreach (var plans in jObject.SelectTokens("..Plans")) { foreach (var plan in plans.Children()) { ExecutionPlanNode node = new ExecutionPlanNode(); node.StartupCost = plan.SelectToken("['Startup Cost']").Value <decimal>(); node.TotalCost = plan.SelectToken("['Total Cost']").Value <decimal>(); var indexToken2 = plan.SelectToken("['Index Name']"); if (indexToken2 != null) { node.IndexName = indexToken2.Value <String>(); if (node.IndexName.StartsWith("\"")) // index name is in " { node.IndexName = node.IndexName.Substring(1); node.IndexName = node.IndexName.Substring(0, node.IndexName.Length - 1); node.IndexName = node.IndexName.Trim(); } } root.Plans.Add(node); } } return(root); }