public object OpenDataset(IDdxDataset dataset, Type knownType) { Assert.ArgumentNotNull(dataset, nameof(dataset)); if (knownType != null) { return(OpenKnownDatasetType(dataset, knownType)); } try { if (dataset is ObjectDataset objectDataset) { return(_datasetContext.OpenObjectClass(objectDataset) != null); } // TODO: Raster, Mosaic return(null); } catch (Exception e) { _msg.VerboseDebug($"Error opening dataset {dataset.Name}", e); return(false); } }
public static IObjectClass TryOpenFromMasterDatabase( [NotNull] IObjectDataset dataset, bool allowAlways = false) { IDatasetContext context = GetMasterDatabaseWorkspaceContext(dataset, allowAlways); return(context?.OpenObjectClass(dataset)); }
private static bool CanWriteToDataset([NotNull] IObjectDataset objectDataset, [NotNull] IDatasetContext datasetContext) { IObjectClass objectClass = datasetContext.OpenObjectClass(objectDataset); // TODO check for file geodatabase/personal geodatabase return(objectClass != null && DatasetUtils.UserHasWriteAccess(objectClass)); }
public static bool DetermineIfIssuesCanBeNavigated( [NotNull] IDatasetContext datasetContext, [NotNull] IEnumerable <IErrorDataset> errorDatasets, [CanBeNull] NotificationCollection notifications = null) { Assert.ArgumentNotNull(datasetContext, nameof(datasetContext)); Assert.ArgumentNotNull(errorDatasets, nameof(errorDatasets)); var unableToNavigate = false; List <IErrorDataset> list = errorDatasets.ToList(); if (list.Count == 0) { unableToNavigate = true; NotificationUtils.Add(notifications, "No error datasets exist in model"); } foreach (IErrorDataset dataset in list) { if (dataset == null) { continue; } if (datasetContext.OpenObjectClass(dataset) == null) { unableToNavigate = true; NotificationUtils.Add(notifications, "Dataset {0} does not exist in workspace", dataset.Name); } } // ok if there is at least dataset for rows without geometry if (!list.OfType <ErrorTableDataset>().Any()) { unableToNavigate = true; NotificationUtils.Add(notifications, "Error dataset for errors without geometry is required"); } return(!unableToNavigate); }
public static IEnumerable <IObjectClass> GetObjectClasses( [NotNull] IEnumerable <Dataset> datasets, [NotNull] IDatasetContext datasetContext) { var result = new List <IObjectClass>(); foreach (Dataset dataset in datasets) { if (dataset.Deleted || dataset.Model == null) { continue; } var objectDataset = dataset as IObjectDataset; if (objectDataset == null) { continue; } IObjectClass objectClass; try { objectClass = datasetContext.OpenObjectClass(objectDataset); } catch (Exception e) { _msg.DebugFormat("Error opening object class for dataset {0} ({1}): {2}", dataset.Name, dataset.Model.Name, e.Message); objectClass = null; } if (objectClass != null) { result.Add(objectClass); } } return(result); }