public void Copy(object source, object destination, bool overwrite) { IModuleDataContainer moduleDataSource = source as IModuleDataContainer; IModuleDataContainer moduleDataDestination = destination as IModuleDataContainer; IModuleDataModel[] data; if (!overwrite) { // Only copy data for modules that do not already exist. data = moduleDataSource.ModuleDataSet.GetData().Except(moduleDataDestination.ModuleDataSet.GetData(), new ModuleDataModelEqualityComparer()).ToArray(); } else { data = moduleDataSource.ModuleDataSet.GetData().ToArray(); foreach (IModuleDataModel dataModel in data) { moduleDataDestination.ModuleDataSet.Remove(dataModel.ModuleTypeId); } } foreach (IModuleDataModel dataModel in data) { moduleDataDestination.ModuleDataSet.Add(dataModel); } }
public void Move(object source, object destination, bool overwrite) { IModuleDataContainer moduleDataSource = source as IModuleDataContainer; IModuleDataContainer moduleDataDestination = destination as IModuleDataContainer; Copy(source, destination, overwrite); foreach (IModuleDataModel dataModel in moduleDataSource.ModuleDataSet.GetData().ToArray()) { moduleDataSource.ModuleDataSet.Remove(dataModel.ModuleTypeId); } }