コード例 #1
0
        ///////////////////////////////////////////////////////////////////////////////////////////////////
        ////////////BUILD FROM V2.1 SCHEMA                 //////////////////////////////////////////////////
        ///////////////////////////////////////////////////////////////////////////////////////////////////

        /// <summary>
        /// Initializes a new instance of the <see cref="CubeRegionCore"/> class.
        /// </summary>
        /// <param name="cubeRegionType">
        /// The cube region type. 
        /// </param>
        /// <param name="negate">
        /// The negate. 
        /// </param>
        /// <param name="parent">
        /// The parent. 
        /// </param>
        public CubeRegionCore(CubeRegionType cubeRegionType, bool negate, IContentConstraintObject parent)
            : base(SdmxStructureType.GetFromEnum(SdmxStructureEnumType.CubeRegion), parent)
        {
            this.keyValues = new List<IKeyValues>();
            this.attributeValues = new List<IKeyValues>();

            {
                var attributeValueSetTypes = cubeRegionType.GetTypedAttribute<AttributeValueSetType>();
                if (attributeValueSetTypes != null)
                {
                    foreach (AttributeValueSetType valueSetType in attributeValueSetTypes)
                    {
                        if (!valueSetType.include)
                        {
                            if (negate)
                            {
                                this.attributeValues.Add(new KeyValuesCore(valueSetType, this));
                            }
                        }
                        else if (!negate)
                        {
                            this.attributeValues.Add(new KeyValuesCore(valueSetType, this));
                        }
                    }
                }
            }

            var cubeRegionKeyTypes = cubeRegionType.GetTypedKeyValue<CubeRegionKeyType>();
            if (cubeRegionKeyTypes != null)
            {
                foreach (var valueSetType0 in cubeRegionKeyTypes)
                {
                    if (!valueSetType0.include)
                    {
                        if (negate)
                        {
                            this.keyValues.Add(new KeyValuesCore(valueSetType0, this));
                        }
                    }
                    else if (!negate)
                    {
                        this.keyValues.Add(new KeyValuesCore(valueSetType0, this));
                    }
                }
            }
        }
コード例 #2
0
        /// <summary>
        /// The build cube region.
        /// </summary>
        /// <param name="cubeRegionType">
        /// The cube region type.
        /// </param>
        /// <returns>
        /// The <see cref="ICubeRegionMutableObject"/>.
        /// </returns>
        private static ICubeRegionMutableObject BuildCubeRegion(CubeRegionType cubeRegionType)
        {
            ICubeRegionMutableObject cubeRegion = new CubeRegionMutableCore();
            foreach (MemberType memberType in cubeRegionType.Member)
            {
                IKeyValuesMutable keyValues = new KeyValuesMutableImpl();
                keyValues.Id = memberType.ComponentRef;
                cubeRegion.AddKeyValue(keyValues);
                if (memberType.MemberValue == null || memberType.MemberValue.Count == 0)
                {
                    keyValues.AddValue(SpecialValues.DummyMemberValue);
                }
                else
                {
                    foreach (MemberValueType memberValueType in memberType.MemberValue)
                    {
                        keyValues.AddValue(memberValueType.Value);
                    }
                }
            }

            return cubeRegion;
        }