internal DashboardNode ParseDashboardNode(XmlNode xmlNode, DashboardNode parent = null) { DashboardNode result; switch (xmlNode.Name) { case "Measure": result = new DashboardNodeMeasure(this, xmlNode, parent); break; case "MeasureLabel": result = new DashboardNodeMeasureLabel(this, xmlNode, parent); break; case "Filter": result = new DashboardNodeFilter(this, xmlNode, parent); break; case "Dimension": result = new DashboardNodeDimension(this, xmlNode, parent); break; case "DimensionLabel": result = new DashboardNodeDimensionLabel(this, xmlNode, parent); break; case "DimensionSelector": result = new DashboardNodeDimensionSelector(this, xmlNode, parent); break; case "Eval": result = new DashboardNodeEval(this, xmlNode, parent); break; case "DateTime": result = new DashboardNodeDateTime(this, xmlNode, parent); break; case "DashboardProperty": result = new DashboardNodeProperty(this, xmlNode, parent); break; default: result = new DashboardNodeHtml(this, xmlNode, parent); break; } return(result); }
public IEnumerable <DashboardNode> GetNodes(string dashboardId) { var nodes = new List <DashboardNode>(); var dashboardConfig = _storage.Dashboards.First(d => d.DashboardId == dashboardId); foreach (var nodeConfig in dashboardConfig.Nodes) { var node = new DashboardNode(); node.Name = nodeConfig.NodeName; nodes.Add(node); foreach (var propertyConfig in nodeConfig.Properties) { var dashboardProperty = new DashboardProperty(); dashboardProperty.AlternativeName = propertyConfig.PropertyName; dashboardProperty.ActualPropertyPath = propertyConfig.PropertyPath; node.Properties.Add(dashboardProperty); } } return(nodes); }