public static IErrorObject CreateErrorObject( [NotNull] IObject errorObject, [NotNull] IErrorDataset errorDataset, [CanBeNull] IFieldIndexCache fieldIndexCache = null) { Assert.ArgumentNotNull(errorObject, nameof(errorObject)); Assert.ArgumentNotNull(errorDataset, nameof(errorDataset)); switch (errorDataset) { case ErrorTableDataset dataset: return(new ErrorTableObject(errorObject, dataset, fieldIndexCache)); case ErrorLineDataset dataset: return(new ErrorLineObject((IFeature)errorObject, dataset, fieldIndexCache)); case ErrorMultiPatchDataset dataset: return(new ErrorMultiPatchObject((IFeature)errorObject, dataset, fieldIndexCache)); case ErrorMultipointDataset dataset: return(new ErrorMultipointObject((IFeature)errorObject, dataset, fieldIndexCache)); case ErrorPolygonDataset dataset: return(new ErrorPolygonObject((IFeature)errorObject, dataset, fieldIndexCache)); default: throw new ArgumentOutOfRangeException( $"Unknown IErrorDataset: {errorDataset.GetType()}"); } }
GetIssueDatasetsByGeometryType([NotNull] IVerificationContext context) { Assert.ArgumentNotNull(context, nameof(context)); var properties = new Dictionary <esriGeometryType, Func <IVerificationContext, IErrorDataset> > { { esriGeometryType.esriGeometryNull, c => c.NoGeometryIssueDataset }, { esriGeometryType.esriGeometryPolygon, c => c.PolygonIssueDataset }, { esriGeometryType.esriGeometryPolyline, c => c.LineIssueDataset }, { esriGeometryType.esriGeometryMultipoint, c => c.MultipointIssueDataset }, { esriGeometryType.esriGeometryMultiPatch, c => c.MultiPatchIssueDataset } }; var result = new Dictionary <esriGeometryType, IErrorDataset>(); foreach ( KeyValuePair <esriGeometryType, Func <IVerificationContext, IErrorDataset> > pair in properties) { Func <IVerificationContext, IErrorDataset> getIssueDataset = pair.Value; IErrorDataset issueDataset = getIssueDataset(context); if (issueDataset != null) { result.Add(pair.Key, issueDataset); } } return(result); }
private static IssueDatasetWriter CreateIssueWriter( [NotNull] IErrorDataset objectDataset, [NotNull] IDatasetContext datasetContext, [NotNull] IFieldIndexCache fieldIndexCache) { Assert.ArgumentNotNull(objectDataset, nameof(objectDataset)); Assert.ArgumentNotNull(datasetContext, nameof(datasetContext)); Assert.ArgumentNotNull(fieldIndexCache, nameof(fieldIndexCache)); ITable table = datasetContext.OpenTable(objectDataset); return(table == null ? null : new IssueDatasetWriter(table, objectDataset, fieldIndexCache)); }
/// <summary> /// Initializes a new instance of the <see cref="IssueDatasetWriter"/> class. /// </summary> /// <param name="issueTable">The error table.</param> /// <param name="issueObjectDataset">The error object dataset.</param> /// <param name="fieldIndexCache">The field index cache.</param> public IssueDatasetWriter([NotNull] ITable issueTable, [NotNull] IErrorDataset issueObjectDataset, [NotNull] IFieldIndexCache fieldIndexCache) { Assert.ArgumentNotNull(issueTable, nameof(issueTable)); Assert.ArgumentNotNull(issueObjectDataset, nameof(issueObjectDataset)); Assert.ArgumentNotNull(fieldIndexCache, nameof(fieldIndexCache)); Table = issueTable; _issueObjectDataset = issueObjectDataset; _fieldIndexCache = fieldIndexCache; _featureClass = Table as IFeatureClass; HasM = _featureClass != null && DatasetUtils.HasM(_featureClass); HasZ = _featureClass != null && DatasetUtils.HasZ(_featureClass); }
public static IList <IFeature> GetInvolvedOrRelatedFeatures( [NotNull] IObject errorObject, [NotNull] IDatasetLookup datasetLookup, [NotNull] IModelContext modelContext, [NotNull] IQualityConditionRepository qualityConditionRepository) { Assert.ArgumentNotNull(errorObject, nameof(errorObject)); Assert.ArgumentNotNull(datasetLookup, nameof(datasetLookup)); Assert.ArgumentNotNull(modelContext, nameof(modelContext)); var list = new List <IFeature>(); IErrorDataset errorTable = GetErrorDataset(errorObject, datasetLookup); IErrorObject errorRow = CreateErrorObject(errorObject, errorTable, null); foreach ( IRow involvedRow in GetInvolvedRows(errorRow, modelContext, qualityConditionRepository)) { var feature = involvedRow as IFeature; if (feature != null) { list.Add(feature); } else { list.AddRange(GetDerivedTableGeometryFeatures((IObject)involvedRow, datasetLookup, modelContext)); } } return(list); }
/// <summary> /// Initializes a new instance of the <see cref="IssueDatasetWriter"/> class. /// </summary> /// <param name="issueFeatureClass">The error feature class.</param> /// <param name="issueObjectDataset">The error object dataset.</param> /// <param name="fieldIndexCache">The field index cache.</param> public IssueDatasetWriter([NotNull] IFeatureClass issueFeatureClass, [NotNull] IErrorDataset issueObjectDataset, [NotNull] IFieldIndexCache fieldIndexCache) : this((ITable)issueFeatureClass, issueObjectDataset, fieldIndexCache) { }