public static void HarvestAttributes([NotNull] ObjectDataset objectDataset, [CanBeNull] IAttributeConfigurator configurator, [NotNull] IObjectClass objectClass) { Assert.ArgumentNotNull(objectClass, nameof(objectClass)); objectDataset.ClearAttributeMaps(); IList <IField> fields = DatasetUtils.GetFields(objectClass); for (var fieldIndex = 0; fieldIndex < fields.Count; fieldIndex++) { AddOrUpdateAttribute(objectDataset, fields[fieldIndex], fieldIndex); } if (configurator != null) { configurator.Configure(objectDataset, objectClass); // Clear _attributesByRole cache objectDataset.ClearAttributeMaps(); } DeleteAttributesNotInList(objectDataset, fields); objectDataset.ClearAttributeMaps(); }
public static void HarvestAttributes( [NotNull] ObjectDataset objectDataset, [CanBeNull] IWorkspaceContext workspaceContext = null, [CanBeNull] IAttributeConfigurator configurator = null) { if (workspaceContext == null) { workspaceContext = ModelElementUtils.GetMasterDatabaseWorkspaceContext(objectDataset); } Assert.NotNull(workspaceContext, "The master database is not accessible"); IObjectClass objectClass = workspaceContext.OpenObjectClass(objectDataset); Assert.NotNull(objectClass, "Unable to open object class {0}", objectDataset.Name); HarvestAttributes(objectDataset, configurator, objectClass); }