Ejemplo n.º 1
0
        internal TreeNode[] MapContent(DimensionCollection metadata)
        {
            var tnc = new List <TreeNode>();

            if (metadata == null)
            {
                return(tnc.ToArray());
            }

            foreach (var dim in metadata)
            {
                var dimNode = new TreeNode(dim.Value.Caption);
                dimNode.Tag = dim.Key;
                tnc.Add(dimNode);
                foreach (var h in dim.Value.Hierarchies)
                {
                    var hNode = new TreeNode(h.Value.Caption);
                    hNode.Tag = h.Key;
                    dimNode.Nodes.Add(hNode);
                    foreach (var l in h.Value.Levels)
                    {
                        var lNode = new TreeNode(l.Value.Caption);
                        lNode.Tag = l.Key;
                        hNode.Nodes.Add(lNode);
                        foreach (var p in l.Value.Properties)
                        {
                            var propNode = new TreeNode(p.Value.Caption);
                            propNode.Tag = p.Key;
                            lNode.Nodes.Add(propNode);
                        }
                    }
                }
            }
            return(tnc.ToArray());
        }
Ejemplo n.º 2
0
        public void FindMemberProperty()
        {
            var connection = TestHelper.CreateConnectionToSsas();

            connection.Open();

            CubeDef cube = TestHelper.GetCube(connection);

            KpiCollection kpis = cube.Kpis;

            MeasureCollection meas = cube.Measures;

            DimensionCollection dims = cube.Dimensions;

            HierarchyCollection hiers = dims[0].Hierarchies;

            LevelCollection levels = hiers[0].Levels;

            MemberCollection members = levels[1].GetMembers();

            MemberProperty prop = members[0].MemberProperties.Find("PARENT_UNIQUE_NAME");

            Assert.IsTrue(!string.IsNullOrEmpty(prop.Value.ToString()));

            connection.Close();
        }
 /// <summary>
 /// Clears Prarameters' values for all dimensions form a specific collection
 /// </summary>
 void ClearParameters(DimensionCollection dimensions)
 {
     foreach (var dimension in dimensions)
     {
         dashboardDesigner1.Parameters[GetParameterDataMember(dimension.DataMember)].SelectedValue = null;
     }
 }
Ejemplo n.º 4
0
        public new DimensionCollection List(IEnumerable<IFilter> filters)
        {
            var dimensions = new DimensionCollection();

            var rows = Discover(filters);
            foreach (var row in rows)
                dimensions.AddOrIgnore(row.UniqueName, row.Caption);

            return dimensions;
        }
Ejemplo n.º 5
0
        public async Task GetDimensionsAsync()
        {
            var connection = TestHelper.CreateConnectionToSsas();
            await connection.OpenAsync();

            CubeDef cube = await TestHelper.GetCubeAsync(connection);

            DimensionCollection dims = await cube.GetDimensionsAsync();

            await connection.CloseAsync();

            Assert.IsTrue(dims.Count == 13);
        }
Ejemplo n.º 6
0
        public new DimensionCollection List(IEnumerable <IFilter> filters)
        {
            var dimensions = new DimensionCollection();

            var rows = Discover(filters);

            foreach (var row in rows)
            {
                dimensions.AddOrIgnore(row.UniqueName, row.Caption);
            }

            return(dimensions);
        }
Ejemplo n.º 7
0
        public async Task GetMembersAsync()
        {
            var connection = TestHelper.CreateConnectionToSsas();
            await connection.OpenAsync();

            CubeDef cube = await TestHelper.GetCubeAsync(connection);

            DimensionCollection dims = await cube.GetDimensionsAsync();

            var hiersTasks = new List <Task <HierarchyCollection> >();

            foreach (Dimension dim in dims)
            {
                hiersTasks.Add(dim.GetHierarchiesAsync());
            }

            var hiersCols = await Task.WhenAll(hiersTasks);

            var hiers = hiersCols.SelectMany(x => x);

            Debug.WriteLine(hiers.Count());

            var levelsTasks = new List <Task <LevelCollection> >();

            foreach (var hier in hiers)
            {
                levelsTasks.Add(hier.GetLevelsAsync());
            }

            var levelsCols = await Task.WhenAll(levelsTasks);

            var levels = levelsCols.SelectMany(x => x);

            var membersTasks = new List <Task <MemberCollection> >();

            foreach (var level in levels)
            {
                membersTasks.Add(level.GetMembersAsync());
            }

            var membersCols = await Task.WhenAll(membersTasks);

            var members = membersCols.SelectMany(x => x);

            Debug.WriteLine(members.Count());

            await connection.CloseAsync();
        }
Ejemplo n.º 8
0
        internal DimensionCollection GetSelection()
        {
            var sel = new DimensionCollection();

            if (this.Nodes == null || Content == null)
            {
                return(null);
            }

            foreach (TreeNode dimNode in this.Nodes)
            {
                if (dimNode.Checked)
                {
                    var cleanDim = Content[(string)dimNode.Tag].Clone();
                    cleanDim.Hierarchies.Clear();

                    sel.Add(cleanDim);
                    foreach (TreeNode hierarchyNode in dimNode.Nodes)
                    {
                        if (hierarchyNode.Checked)
                        {
                            var cleanHierarchy = Content[(string)dimNode.Tag]
                                                 .Hierarchies[(string)hierarchyNode.Tag].Clone();
                            cleanHierarchy.Levels.Clear();

                            sel[(string)dimNode.Tag].Hierarchies.Add(cleanHierarchy);

                            foreach (TreeNode levelNode in hierarchyNode.Nodes)
                            {
                                if (levelNode.Checked)
                                {
                                    sel[(string)dimNode.Tag]
                                    .Hierarchies[(string)hierarchyNode.Tag].Levels.Add((string)levelNode.Tag,
                                                                                       sel[(string)dimNode.Tag]
                                                                                       .Hierarchies[(string)hierarchyNode.Tag]
                                                                                       .Levels[(string)levelNode.Tag]
                                                                                       .Clone());
                                }
                            }
                        }
                    }
                }
            }
            return(sel);
        }
Ejemplo n.º 9
0
        public IArrayType UpdateDynamicType()
        {
            int       elementCount = this.readArraySize();
            ArrayType dataType     = (ArrayType)base.DataType;
            ReadOnlyDimensionCollection dimensions = dataType.Dimensions;
            DimensionCollection         dims       = new DimensionCollection();

            for (int i = 0; i < dimensions.Count; i++)
            {
                Dimension item = null;
                item = (i != 0) ? new Dimension(dimensions[i].LowerBound, dimensions[i].ElementCount) : new Dimension(dimensions[i].LowerBound, elementCount);
                dims.Add(item);
            }
            ArrayType type2 = new ArrayType(dataType.Name, (DataType)dataType.ElementType, dims, AdsDataTypeFlags.AnySizeArray | AdsDataTypeFlags.DataType);

            base.resolvedDataType = type2;
            return(type2);
        }
Ejemplo n.º 10
0
        private void LoadFields()
        {
            String connectionString = System.Configuration.ConfigurationManager.ConnectionStrings["OLAPConnection"].ConnectionString;

            using (AdomdConnection conn = new AdomdConnection(connectionString))
            {
                conn.Open();
                CubeDef cubeDef = null;
                foreach (CubeDef cube in conn.Cubes)
                {
                    if (cube.Type == CubeType.Cube)
                    {
                        cubeDef = cube;
                        break;
                    }
                }
                if (cubeDef == null)
                {
                    m_DimFieldCollection.Clear();
                    m_MeasureFieldCollection.Clear();
                    return;
                }
                DimensionCollection dimCollection = cubeDef.Dimensions;
                foreach (Dimension dim in dimCollection)
                {
                    if (dim.DimensionType == DimensionTypeEnum.Measure)
                    {
                        continue;
                    }
                    HierarchyCollection hierarchyColl = dim.Hierarchies;
                    foreach (Hierarchy hier in hierarchyColl)
                    {
                        m_DimFieldCollection.Add(new Olap.DimensionFieldInfo(hier));
                    }
                }
                MeasureCollection measureCollection = cubeDef.Measures;
                foreach (Measure m in measureCollection)
                {
                    m_MeasureFieldCollection.Add(new Olap.MeasureFieldInfo(m));
                }
            }
        }
Ejemplo n.º 11
0
        public ArrayType(AdsDataTypeEntry entry) : base(DataTypeCategory.Array, entry)
        {
            string str2;

            AdsDatatypeArrayInfo[] arrayInfos = entry.arrayInfos;
            AdsDatatypeArrayInfo[] dims       = null;
            AdsDatatypeArrayInfo[] infoArray3 = null;
            string baseType = null;

            if (DataTypeStringParser.TryParseArray(base.name, out dims, out baseType) && DataTypeStringParser.TryParseArray(baseType, out infoArray3, out str2))
            {
                this._dimensions     = new DimensionCollection(dims);
                this.elementTypeName = baseType;
                this.elementTypeId   = entry.baseTypeId;
            }
            else
            {
                this._dimensions     = new DimensionCollection(arrayInfos);
                this.elementTypeName = entry.typeName;
                this.elementTypeId   = entry.baseTypeId;
            }
            this._oversampled = (entry.flags & (AdsDataTypeFlags.None | AdsDataTypeFlags.Oversample)) == (AdsDataTypeFlags.None | AdsDataTypeFlags.Oversample);
        }
Ejemplo n.º 12
0
 internal void SetSelection(DimensionCollection selection)
 {
     foreach (TreeNode dimNode in this.Nodes)
     {
         dimNode.Checked = selection.ContainsKey((string)dimNode.Tag);
         if (dimNode.Checked)
         {
             foreach (TreeNode hierarchyNode in dimNode.Nodes)
             {
                 hierarchyNode.Checked = selection[(string)dimNode.Tag].
                                         Hierarchies.ContainsKey((string)hierarchyNode.Tag);
                 if (hierarchyNode.Checked)
                 {
                     foreach (TreeNode levelNode in hierarchyNode.Nodes)
                     {
                         levelNode.Checked = selection[(string)dimNode.Tag].
                                             Hierarchies[(string)hierarchyNode.Tag].
                                             Levels.ContainsKey((string)levelNode.Tag);
                     }
                 }
             }
         }
     }
 }
Ejemplo n.º 13
0
        private List <FieldInfo> LoadFields()
        {
            //String connectionString = System.Configuration.ConfigurationManager.ConnectionStrings[OLAPConnector.OLAPConnectionString].ConnectionString;
            String connectionString = "Data source=(local);Initial Catalog=SWordBI_SSAS";
            //Dictionary<String, String> fields = new Dictionary<String, String>();
            List <FieldInfo> fields = new List <FieldInfo>();

            using (AdomdConnection conn = new AdomdConnection(connectionString))
            {
                conn.Open();
                CubeDef cubeDef = null;
                foreach (CubeDef cube in conn.Cubes)
                {
                    if (cube.Type == CubeType.Cube)
                    {
                        cubeDef = cube;
                        break;
                    }
                }
                if (cubeDef == null)
                {
                    return(fields);
                }
                DimensionCollection dimCollection = cubeDef.Dimensions;
                foreach (Dimension dim in dimCollection)
                {
                    HierarchyCollection hierarchyColl = dim.AttributeHierarchies;
                    foreach (Hierarchy h in hierarchyColl)
                    {
                        //fields.Add(h.UniqueName, h.Caption);
                        fields.Add(new FieldInfo(h.UniqueName, h.Caption));
                    }
                }
            }
            return(fields);
        }
Ejemplo n.º 14
0
 public MeasureGroup(string name)
 {
     Name = name;
     Measures = new MeasureCollection();
     LinkedDimensions = new DimensionCollection();
 }
Ejemplo n.º 15
0
        public override void Load_InitData()
        {
            if (Mode != ControlMode.New)
            {
                return;
            }
            ASPxComboBox cbbKeyField;

            try
            {
                cbbKeyField = (ASPxComboBox)this.FindControl("cbbKeyField");
                if (cbbKeyField == null)
                {
                    return;
                }
            }
#if DEBUG
            catch (Exception ex)
            {
                throw ex;
            }
#else
            catch ()
            {
                return;
            }
#endif
            // Load fields
            String connectionString = System.Configuration.ConfigurationManager.ConnectionStrings["OLAPConnection"].ConnectionString;
            using (AdomdConnection conn = new AdomdConnection(connectionString))
            {
                conn.Open();
                // Find a cube
                CubeDef        cubeDef        = null;
                CubeCollection cubeCollection = conn.Cubes;
                int            numOfCube      = cubeCollection.Count - 1;
                for (; numOfCube > 0; numOfCube--)
                {
                    cubeDef = cubeCollection[numOfCube];
                    if (cubeDef.Type == CubeType.Cube)
                    {
                        break;
                    }
                }
                if (this is wcNormalFilter ||
                    this is wcTimeFilter)
                {
                    Olap.DimensionFieldInfoCollection fields = new Olap.DimensionFieldInfoCollection();
                    // Load dimension field
                    DimensionCollection dimCollection = cubeDef.Dimensions;
                    int numOfDim = dimCollection.Count;
                    for (int dimIndex = 0; dimIndex < numOfDim; dimIndex++)
                    {
                        Dimension dim = dimCollection[dimIndex];
                        if (this is wcNormalFilter)
                        {
                            if (dim.UniqueName == "[ARDimTime]" ||
                                dim.DimensionType == DimensionTypeEnum.Measure)
                            {
                                continue;
                            }
                        }
                        else if (this is wcNumFilter)
                        {
                            if (dim.DimensionType != DimensionTypeEnum.Measure)
                            {
                                continue;
                            }
                        }
                        else                         // Date
                        {
                            if (dim.UniqueName != "[ARDimTime]")
                            {
                                continue;
                            }
                        }

                        foreach (Hierarchy hier in dim.Hierarchies)
                        {
                            fields.Add(new Olap.DimensionFieldInfo(hier));
                        }
                    }
                    Helpers.SetDataSource(cbbKeyField, fields, "UniqueName", "Caption");
                }
                else                 // wcNumFilter
                {
                    Olap.MeasureFieldInfoCollection fields = new Olap.MeasureFieldInfoCollection();
                    MeasureCollection measureCollection    = cubeDef.Measures;
                    int numOfMeasure = measureCollection.Count;
                    for (int mIndex = 0; mIndex < numOfMeasure; mIndex++)
                    {
                        Measure m = measureCollection[mIndex];
                        fields.Add(new Olap.MeasureFieldInfo(m));
                    }
                    Helpers.SetDataSource(cbbKeyField, fields, "UniqueName", "Caption");
                }
            }
        }
Ejemplo n.º 16
0
        internal DimensionCollection GetSelection()
        {
            var sel = new DimensionCollection();

            if (this.Nodes == null || Content==null)
                return null;

            foreach (TreeNode dimNode in this.Nodes)
            {
                if (dimNode.Checked)
                {
                    var cleanDim = Content[(string)dimNode.Tag].Clone();
                    cleanDim.Hierarchies.Clear();

                    sel.Add(cleanDim);
                    foreach (TreeNode hierarchyNode in dimNode.Nodes)
                    {
                        if (hierarchyNode.Checked)
                        {
                            var cleanHierarchy = Content[(string)dimNode.Tag]
                                .Hierarchies[(string)hierarchyNode.Tag].Clone();
                            cleanHierarchy.Levels.Clear();

                            sel[(string)dimNode.Tag].Hierarchies.Add(cleanHierarchy);

                            foreach (TreeNode levelNode in hierarchyNode.Nodes)
                            {
                                if (levelNode.Checked)
                                    sel[(string)dimNode.Tag]
                                        .Hierarchies[(string)hierarchyNode.Tag].Levels.Add((string)levelNode.Tag,
                                        sel[(string)dimNode.Tag]
                                        .Hierarchies[(string)hierarchyNode.Tag]
                                        .Levels[(string)levelNode.Tag]
                                        .Clone());
                            }
                        }
                    }
                }
            }
            return sel;
        }
 public DimensionCollection GetDimensions()
 {
     return(DimensionCollection.GetDimensions());
 }
Ejemplo n.º 18
0
 public Product()
 {
     Dimensions = new DimensionCollection();
 }
Ejemplo n.º 19
0
 public ArrayType(string typeName, DataType elementType, DimensionCollection dims, AdsDataTypeFlags flags) : base(typeName, AdsDatatypeId.ADST_BIGTYPE, DataTypeCategory.Array, dims.ElementCount * elementType.ByteSize, null, flags)
 {
     this.elementType     = elementType;
     this.elementTypeName = elementType.Name;
     this._dimensions     = dims;
 }
Ejemplo n.º 20
0
 internal void SetSelection(DimensionCollection selection)
 {
     foreach (TreeNode dimNode in this.Nodes)
     {
         dimNode.Checked = selection.ContainsKey((string)dimNode.Tag);
         if (dimNode.Checked)
         {
             foreach (TreeNode hierarchyNode in dimNode.Nodes)
             {
                 hierarchyNode.Checked = selection[(string)dimNode.Tag].
                     Hierarchies.ContainsKey((string)hierarchyNode.Tag);
                 if (hierarchyNode.Checked)
                 {
                     foreach (TreeNode levelNode in hierarchyNode.Nodes)
                     {
                         levelNode.Checked = selection[(string)dimNode.Tag].
                             Hierarchies[(string)hierarchyNode.Tag].
                             Levels.ContainsKey((string)levelNode.Tag);
                     }
                 }
             }
         }
     }
 }
Ejemplo n.º 21
0
 public Perspective(string name)
 {
     Name = name;
     MeasureGroups = new MeasureGroupCollection();
     Dimensions = new DimensionCollection();
 }
Ejemplo n.º 22
0
 public MeasureGroup(string name)
 {
     Name             = name;
     Measures         = new MeasureCollection();
     LinkedDimensions = new DimensionCollection();
 }
Ejemplo n.º 23
0
        internal TreeNode[] MapContent(DimensionCollection metadata)
        {
            var tnc = new List<TreeNode>();

            if (metadata == null)
                return tnc.ToArray();

            foreach (var dim in metadata)
            {
                var dimNode = new TreeNode(dim.Value.Caption);
                dimNode.Tag = dim.Key;
                tnc.Add(dimNode);
                foreach (var h in dim.Value.Hierarchies)
                {
                    var hNode = new TreeNode(h.Value.Caption);
                    hNode.Tag = h.Key;
                    dimNode.Nodes.Add(hNode);
                    foreach (var l in h.Value.Levels)
                    {
                        var lNode = new TreeNode(l.Value.Caption);
                        lNode.Tag = l.Key;
                        hNode.Nodes.Add(lNode);
                        foreach (var p in l.Value.Properties)
                        {
                            var propNode = new TreeNode(p.Value.Caption);
                            propNode.Tag = p.Key;
                            lNode.Nodes.Add(propNode);
                        }
                    }
                }
            }
            return tnc.ToArray();
        }
Ejemplo n.º 24
0
        internal static bool TryParseType(string typeName, IBinder resolver, out IDataType type)
        {
            if (typeName == null)
            {
                throw new ArgumentNullException("typeName");
            }
            if (resolver == null)
            {
                throw new ArgumentNullException("resolver");
            }
            if (typeName == string.Empty)
            {
                throw new ArgumentException();
            }
            DataType type2     = null;
            int      length    = -1;
            bool     isUnicode = false;

            if (DataTypeStringParser.TryParseString(typeName, out length, out isUnicode))
            {
                type2 = !isUnicode ? ((DataType) new StringType(length)) : ((DataType) new WStringType(length));
                resolver.RegisterType(type2);
                resolver.OnTypeGenerated(type2);
                type = type2;
                return(true);
            }
            DimensionCollection dims = null;
            string baseType          = null;

            if (DataTypeStringParser.TryParseArray(typeName, out dims, out baseType))
            {
                IDataType type3 = null;
                if (resolver.TryResolveType(baseType, out type3))
                {
                    type2 = new ArrayType(typeName, (DataType)type3, dims, AdsDataTypeFlags.DataType);
                    resolver.RegisterType(type2);
                    resolver.OnTypeGenerated(type2);
                    type = type2;
                    return(true);
                }
                resolver.OnTypeResolveError(typeName);
                object[] args = new object[] { typeName };
                Module.Trace.TraceWarning("Array Type '{0}' could not be resolved. Not in DataType tables. Ignoring Type!", args);
                type = null;
                return(false);
            }
            string referencedType = null;

            if (DataTypeStringParser.TryParsePointer(typeName, out referencedType))
            {
                type2 = new PointerType(typeName, referencedType);
                resolver.RegisterType(type2);
                resolver.OnTypeGenerated(type2);
                type = type2;
                return(true);
            }
            if (DataTypeStringParser.TryParseReference(typeName, out referencedType))
            {
                type2 = new ReferenceType(typeName, referencedType, resolver.PlatformPointerSize);
                resolver.RegisterType(type2);
                resolver.OnTypeGenerated(type2);
                type = type2;
                return(true);
            }
            type2 = (DataType)SubRangeTypeFactory.Create(typeName, resolver);
            if (type2 == null)
            {
                type = null;
                resolver.OnTypeResolveError(typeName);
                return(false);
            }
            resolver.RegisterType(type2);
            resolver.OnTypeGenerated(type2);
            type = type2;
            return(true);
        }