Пример #1
0
        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);
        }
Пример #2
0
        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);
        }