예제 #1
0
        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);
        }
예제 #2
0
        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);
        }