/// <summary> /// This method sets the active dimension and unit to a valid one depending on meta data settings. /// </summary> public void SetColumnUnitDependingOnMetaData() { if (MetaData == null || MetaData.Rows.Count == 0) { return; } if (Dimensions == null) { return; } if (CurrentlySupportedDimensions.Count == 0) { return; } if (CurrentlySupportedDimensions.Contains(ActiveDimension)) { return; } if (!string.IsNullOrEmpty(ColumnNameOfRelatedColumn) && Table != null) { var relatedColumn = Table.Columns.ItemByName(ColumnNameOfRelatedColumn); if (relatedColumn.IsUnitExplicitlySet) { try { var relatedDim = DimensionHelper.FindDimension(CurrentlySupportedDimensions, relatedColumn.ActiveDimension.Name); if (relatedDim != null) { ActiveDimension = relatedDim; DimensionHelper.TakeOverInputParameters(relatedDim, _activeDimension); var unitName = relatedColumn.ActiveUnit.Name; ActiveUnit = relatedDim.HasUnit(unitName) ? relatedDim.FindUnit(unitName) : ActiveDimension.GetDefaultUnit(); IsUnitExplicitlySet = false; return; } } catch (DimensionNotFound) {} } } ActiveDimension = CurrentlySupportedDimensions.Contains( DimensionHelper.GetDefaultDimension(Dimensions)) ? DimensionHelper.GetDefaultDimension(Dimensions) : CurrentlySupportedDimensions[0]; ActiveUnit = ActiveDimension.GetDefaultUnit(); IsUnitExplicitlySet = false; }
private void setDimensionOfRelatedColumn(ImportDataColumn relatedColumn) { var newRelatedColumnDimension = bestDimensionSupportedByRelatedColumn(relatedColumn); if (newRelatedColumnDimension == null) { return; } if (!shouldChangeRelatedColumnDimensionTo(newRelatedColumnDimension)) { return; } relatedColumn.ActiveDimension = newRelatedColumnDimension; relatedColumn.IsUnitExplicitlySet = false; DimensionHelper.TakeOverInputParameters(_activeDimension, newRelatedColumnDimension); }