/////////////////////////////////////////////////////////////////////////////////////////////////// ////////////BUILD FROM IMMUTABLE OBJECT ////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////// /// <summary> /// Initializes a new instance of the <see cref="CubeRegionMutableCore"/> class. /// </summary> /// <param name="immutable"> /// The immutable. /// </param> public CubeRegionMutableCore(ICubeRegion immutable) : base(immutable) { this._keyValues = new List<IKeyValuesMutable>(); this._attributeValues = new List<IKeyValuesMutable>(); if (ObjectUtil.ValidCollection(immutable.KeyValues)) { foreach (IKeyValues mutable in immutable.KeyValues) { this._keyValues.Add(new KeyValuesMutableImpl(mutable)); } } if (ObjectUtil.ValidCollection(immutable.AttributeValues)) { foreach (IKeyValues keyValues in immutable.AttributeValues) { this._attributeValues.Add(new KeyValuesMutableImpl(keyValues)); } } }
/// <summary> /// Inserts the cube region. /// </summary> /// <param name="state">The state.</param> /// <param name="cubeRegion">The cube region.</param> /// <param name="artefactStatus">The artefact status.</param> /// <param name="isInclude">if set to <c>true</c> [is include].</param> private static void InsertCubeRegion(DbTransactionState state, ICubeRegion cubeRegion, ArtefactImportStatus artefactStatus, bool isInclude) { var procedure = new InsertCubeRegionProcedure(); long cubeRegionPrimaryKey; using (var command = procedure.CreateCommand(state)) { procedure.CreateContentConstraintIdParameter(command, artefactStatus.PrimaryKeyValue); procedure.CreateIncludeParameter(command, isInclude); var outputParameter = procedure.CreateOutputParameter(command); command.ExecuteNonQuery(); cubeRegionPrimaryKey = (long)outputParameter.Value; } // handle dimensions var keyValuesWithId = InsertKeyValues(state, isInclude, cubeRegionPrimaryKey, cubeRegion.KeyValues, SdmxComponentType.Dimension); InsertValues(state, isInclude, keyValuesWithId); // handle attributes var attrValuesWithId = InsertKeyValues(state, isInclude, cubeRegionPrimaryKey, cubeRegion.AttributeValues, SdmxComponentType.Attribute); InsertValues(state, isInclude, attrValuesWithId); }
/// <summary> /// Adds cross references for a cube region to components map. /// </summary> /// <param name="constraintBean"> /// The constraint object /// </param> /// <param name="returnReferences"> /// The returned references /// </param> /// <param name="componentMap"> /// The components map /// </param> /// <param name="cubeRegionBean"> /// The cube region object /// </param> private void AddCrossReferencesForCubeRegion(IContentConstraintObject constraintBean, ISet<ICrossReference> returnReferences, IDictionary<String, IComponent> componentMap, ICubeRegion cubeRegionBean) { if (cubeRegionBean == null) return; AddCrossReferencesForCubeRegion(constraintBean, returnReferences, componentMap, cubeRegionBean.KeyValues); AddCrossReferencesForCubeRegion(constraintBean, returnReferences, componentMap, cubeRegionBean.AttributeValues); }