public ImportDataColumn Clone() { var retValue = new ImportDataColumn { ColumnName = ColumnName, Required = Required, Description = Description, DisplayName = DisplayName, SkipNullValueRows = SkipNullValueRows, Source = Source }; if (Dimensions != null) { retValue.Dimensions = DimensionHelper.Clone(Dimensions); if (ActiveDimension != null) { retValue.ActiveDimension = DimensionHelper.FindDimension(retValue.Dimensions, ActiveDimension.Name); retValue.ActiveUnit = retValue.ActiveDimension.FindUnit(ActiveUnit.Name); retValue.IsUnitExplicitlySet = IsUnitExplicitlySet; } } if (MetaData != null) { retValue.MetaData = MetaData.Clone(); } retValue.ColumnNameOfRelatedColumn = ColumnNameOfRelatedColumn; return(retValue); }
public new ImportDataTable Clone() { var retValue = (ImportDataTable)base.Clone(); retValue.File = File; retValue.Sheet = Sheet; foreach (ImportDataColumn col in Columns) { var newCol = retValue.Columns.ItemByName(col.ColumnName); newCol.DisplayName = col.DisplayName; newCol.Description = col.Description; newCol.Source = col.Source; newCol.SkipNullValueRows = col.SkipNullValueRows; newCol.ColumnNameOfRelatedColumn = col.ColumnNameOfRelatedColumn; if (col.MetaData != null) { newCol.MetaData = col.MetaData.Clone(); } if (col.Dimensions == null) { continue; } newCol.Dimensions = DimensionHelper.Clone(col.Dimensions); } if (MetaData != null) { retValue.MetaData = MetaData.Clone(); } //this second run overt the columns is necessary to avoid side effects on unit setting by setting the dimensions. foreach (ImportDataColumn col in Columns) { if (col.ActiveDimension == null) { continue; } var newCol = retValue.Columns.ItemByName(col.ColumnName); newCol.ActiveDimension = DimensionHelper.FindDimension(newCol.Dimensions, col.ActiveDimension.Name); newCol.ActiveUnit = newCol.ActiveDimension.FindUnit(col.ActiveUnit.Name); newCol.IsUnitExplicitlySet = col.IsUnitExplicitlySet; } return(retValue); }