Exemple #1
0
        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();
        }
Exemple #2
0
        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);
        }