/////////////////////////////////////////////////////////////////////////////////////////////////// ////////////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)); } } } }
/// <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; }