Exemplo n.º 1
0
        internal bool TryGetDimensionNodeForRole(string currentLanguage, string currentLabelRole,
                                                 string roleId, out DimensionNode topLevelNode)
        {
            topLevelNode = null;
            DefinitionLink dl = definitionLinks[roleId] as DefinitionLink;

            if (dl != null)
            {
                string label = dl.Title;


                topLevelNode = new DimensionNode(label);
                topLevelNode.MyDefinitionLink = dl;
                if (dl.HypercubeLocatorsHrefs.Count > 0)
                {
                    foreach (string hypercubeHref in dl.HypercubeLocatorsHrefs)
                    {
                        DimensionNode hyperCubeNode;
                        if (dl.TryGetHypercubeNode(currentLanguage, currentLabelRole, this.definitionLinks,
                                                   hypercubeHref, false, out hyperCubeNode))
                        {
                            topLevelNode.AddChild(hyperCubeNode);
                        }
                    }
                }
                else
                {
                    //we might have to build the dimension nodes by itself...
                    if (dl.DimensionLocatorsHrefs.Count > 0)
                    {
                        foreach (string dimHref in dl.DimensionLocatorsHrefs)
                        {
                            DefinitionLocator dloc;
                            if (!dl.TryGetLocator(dimHref, out dloc))
                            {
                                return(false);
                            }

                            DimensionNode dn = dloc.CreateDimensionNode(currentLanguage, currentLabelRole,
                                                                        null, dimHref, dl, true, definitionLinks, null, null, true, false);

                            if (dn != null)
                            {
                                topLevelNode.AddChild(dn);
                            }
                        }
                    }
                }
            }

            return(topLevelNode != null);
        }
Exemplo n.º 2
0
        internal bool TryGetMeasureDimensionNodesForRole(string currentLanguage, string currentLabelRole,
                                                         string roleId, Taxonomy tax, out DimensionNode topLevelNode)
        {
            topLevelNode = null;
            DefinitionLink dl = definitionLinks[roleId] as DefinitionLink;

            if (dl != null)
            {
                string label = dl.Title;


                topLevelNode = new DimensionNode(label);
                topLevelNode.MyDefinitionLink = dl;
                if (dl.HypercubeLocatorsHrefs.Count > 0)
                {
                    foreach (string hypercubeHref in dl.HypercubeLocatorsHrefs)
                    {
                        List <DimensionNode> dns;
                        dl.BuildMeasureElementTreeForHypercubeId(tax, hypercubeHref, false, out dns);

                        if (dns != null)
                        {
                            foreach (DimensionNode dn in dns)
                            {
                                topLevelNode.AddChild(dn);
                            }
                        }
                    }
                }
            }

            return(topLevelNode != null);
        }
Exemplo n.º 3
0
        internal bool TryGetMeasureDimensionNodesForRole(string currentLanguage, string currentLabelRole,
            string roleId, Taxonomy tax,   out DimensionNode topLevelNode)
        {
            topLevelNode = null;
            DefinitionLink dl = definitionLinks[roleId] as DefinitionLink;

            if (dl != null)
            {

                string label = dl.Title;

                topLevelNode = new DimensionNode(label);
                topLevelNode.MyDefinitionLink = dl;
                if (dl.HypercubeLocatorsHrefs.Count > 0)
                {
                    foreach (string hypercubeHref in dl.HypercubeLocatorsHrefs)
                    {
                        List<DimensionNode> dns ;
                       dl.BuildMeasureElementTreeForHypercubeId( tax, hypercubeHref, false, out dns);

                        if( dns != null)
                        {
                            foreach (DimensionNode dn in dns)
                            {
                                topLevelNode.AddChild(dn);
                            }
                        }

                    }
                }

            }

            return topLevelNode != null;
        }
Exemplo n.º 4
0
        /// <summary>
        /// Retrieves the segment and scenario dimension nodes for display.
        /// </summary>
        internal bool TryGetDimensionNodesForDisplay(string currentLanguage, string currentLabelRole,
			Hashtable presentationLinks, 
			bool isSegment, bool allDimensions,  Dictionary<string, RoleType> roleTypesDt,
			out Dictionary<string, DimensionNode> dimensionNodes)
        {
            dimensionNodes = new Dictionary<string, DimensionNode>();

            foreach (DefinitionLink dl in this.definitionLinks.Values)
            {
                string label = dl.Title;
                if (roleTypesDt != null)
                {
                    RoleType rt;
                    if (roleTypesDt.TryGetValue(label, out rt))
                    {

                        if (!string.IsNullOrEmpty(rt.Definition))
                        {
                            label = rt.Definition;
                        }
                    }
                }

                DimensionNode topLevelNode = new DimensionNode(label);
                topLevelNode.MyDefinitionLink = dl;
                if (isSegment)
                {
                    foreach (string hypercubeHref in dl.HypercubeLocatorsHrefs)
                    {
                        if (!allDimensions)
                        {
                            if ( presentationLinks!= null &&  presentationLinks.Contains(dl.Role))
                            {
                                //if the hyper cube is part of the segment list or
                                //if it part of the scenario list do not show it here
                                //as we are going to show it in the element pane....
                                if (dl.segmentHypercubesHRef.Contains(hypercubeHref) ||
                                    dl.scenarioHypercubesHref.Contains(hypercubeHref)) continue;

                            }
                        }
                        DimensionNode hyperCubeNode;
                        if (dl.TryGetHypercubeNode(currentLanguage, currentLabelRole, this.definitionLinks,
                            hypercubeHref,false, out hyperCubeNode))
                        {
                            topLevelNode.AddChild(hyperCubeNode);

                        }

                    }
                }
                else
                {
                    foreach (string hypercubeHref in dl.HypercubeLocatorsHrefs)
                    {
                        //we want to show all the scenario dimensions and
                        //and all the  dimensions that are not associated with the segment

                        if (dl.scenarioHypercubesHref.Contains(hypercubeHref)
                            || !dl.segmentHypercubesHRef.Contains(hypercubeHref))
                        {

                            DimensionNode hyperCubeNode;
                            if (dl.TryGetHypercubeNode(currentLanguage, currentLabelRole, this.definitionLinks,
                                hypercubeHref,false, out hyperCubeNode))
                            {
                                topLevelNode.AddChild(hyperCubeNode);

                            }

                        }

                    }

                }

                if (topLevelNode.Children != null && topLevelNode.Children.Count > 0)
                {
                    dimensionNodes.Add(dl.Role, topLevelNode);
                }

            }

            return true;
        }
Exemplo n.º 5
0
        internal bool TryGetDimensionNodeForRole(string currentLanguage, string currentLabelRole,
			string roleId,	out DimensionNode  topLevelNode )
        {
            topLevelNode = null;
            DefinitionLink dl = definitionLinks[roleId] as DefinitionLink;

            if( dl != null )
            {

                string label = dl.Title;

                topLevelNode = new DimensionNode(label);
                topLevelNode.MyDefinitionLink = dl;
                if (dl.HypercubeLocatorsHrefs.Count > 0)
                {
                    foreach (string hypercubeHref in dl.HypercubeLocatorsHrefs)
                    {

                        DimensionNode hyperCubeNode;
                        if (dl.TryGetHypercubeNode(currentLanguage, currentLabelRole, this.definitionLinks,
                            hypercubeHref,false, out hyperCubeNode))
                        {
                            topLevelNode.AddChild(hyperCubeNode);

                        }

                    }
                }
                else
                {
                    //we might have to build the dimension nodes by itself...
                    if (dl.DimensionLocatorsHrefs.Count > 0)
                    {
                        foreach (string dimHref in dl.DimensionLocatorsHrefs)
                        {
                            DefinitionLocator dloc;
                            if (!dl.TryGetLocator(dimHref, out dloc)) return false;

                            DimensionNode dn  = dloc.CreateDimensionNode(currentLanguage, currentLabelRole,
                               null, dimHref, dl, true, definitionLinks, null, null, true, false);

                            if (dn != null)
                            {

                                topLevelNode.AddChild(dn);

                            }
                        }
                    }
                }

            }

            return topLevelNode != null;
        }
Exemplo n.º 6
0
        /// <summary>
        /// Retrieves the segment and scenario dimension nodes for display.
        /// </summary>
        internal bool TryGetDimensionNodesForDisplay(string currentLanguage, string currentLabelRole,
                                                     Hashtable presentationLinks,
                                                     bool isSegment, bool allDimensions, Dictionary <string, RoleType> roleTypesDt,
                                                     out Dictionary <string, DimensionNode> dimensionNodes)
        {
            dimensionNodes = new Dictionary <string, DimensionNode>();

            foreach (DefinitionLink dl in this.definitionLinks.Values)
            {
                string label = dl.Title;
                if (roleTypesDt != null)
                {
                    RoleType rt;
                    if (roleTypesDt.TryGetValue(label, out rt))
                    {
                        if (!string.IsNullOrEmpty(rt.Definition))
                        {
                            label = rt.Definition;
                        }
                    }
                }

                DimensionNode topLevelNode = new DimensionNode(label);
                topLevelNode.MyDefinitionLink = dl;
                if (isSegment)
                {
                    foreach (string hypercubeHref in dl.HypercubeLocatorsHrefs)
                    {
                        if (!allDimensions)
                        {
                            if (presentationLinks != null && presentationLinks.Contains(dl.Role))
                            {
                                //if the hyper cube is part of the segment list or
                                //if it part of the scenario list do not show it here
                                //as we are going to show it in the element pane....
                                if (dl.segmentHypercubesHRef.Contains(hypercubeHref) ||
                                    dl.scenarioHypercubesHref.Contains(hypercubeHref))
                                {
                                    continue;
                                }
                            }
                        }
                        DimensionNode hyperCubeNode;
                        if (dl.TryGetHypercubeNode(currentLanguage, currentLabelRole, this.definitionLinks,
                                                   hypercubeHref, false, out hyperCubeNode))
                        {
                            topLevelNode.AddChild(hyperCubeNode);
                        }
                    }
                }
                else
                {
                    foreach (string hypercubeHref in dl.HypercubeLocatorsHrefs)
                    {
                        //we want to show all the scenario dimensions and
                        //and all the  dimensions that are not associated with the segment

                        if (dl.scenarioHypercubesHref.Contains(hypercubeHref) ||
                            !dl.segmentHypercubesHRef.Contains(hypercubeHref))
                        {
                            DimensionNode hyperCubeNode;
                            if (dl.TryGetHypercubeNode(currentLanguage, currentLabelRole, this.definitionLinks,
                                                       hypercubeHref, false, out hyperCubeNode))
                            {
                                topLevelNode.AddChild(hyperCubeNode);
                            }
                        }
                    }
                }

                if (topLevelNode.Children != null && topLevelNode.Children.Count > 0)
                {
                    dimensionNodes.Add(dl.Role, topLevelNode);
                }
            }

            return(true);
        }