private static IIssueTableFields GetTargetFields( [NotNull] ICollection <IObjectClass> targetExceptionClasses, bool ensureRequiredFields = true) { IWorkspace workspace = Assert.NotNull(DatasetUtils.GetUniqueWorkspace(targetExceptionClasses)); IIssueTableFieldManagement fields = IssueTableFieldsFactory.GetIssueTableFields( addExceptionFields: true, useDbfFieldNames: WorkspaceUtils.IsShapefileWorkspace(workspace), addManagedExceptionFields: true); if (ensureRequiredFields) { using (_msg.IncrementIndentation("Ensuring required target fields")) { int addedFields = EnsureTargetFields(targetExceptionClasses, fields); if (addedFields == 0) { _msg.Info("All required fields exist in target datasets"); } } } return(fields); }
private static IIssueTableFields GetImportFields( [NotNull] IEnumerable <IObjectClass> importExceptionClasses) { IWorkspace workspace = Assert.NotNull(DatasetUtils.GetUniqueWorkspace(importExceptionClasses)); return(IssueTableFieldsFactory.GetIssueTableFields( addExceptionFields: true, useDbfFieldNames: WorkspaceUtils.IsShapefileWorkspace(workspace))); }
public static ExceptionObjectRepository PrepareExceptionRepository( [NotNull] QualitySpecification qualitySpecification, [NotNull] IDatasetContext datasetContext, [NotNull] IQualityConditionObjectDatasetResolver datasetResolver, [CanBeNull] AreaOfInterest areaOfInterest, [CanBeNull] XmlVerificationOptions verificationOptions) { if (verificationOptions == null) { return(null); } IWorkspace workspace = VerificationOptionUtils.GetExceptionWorkspace( verificationOptions); if (workspace == null) { return(null); } bool useDbfFieldNames = WorkspaceUtils.IsShapefileWorkspace(workspace); IIssueTableFieldManagement issueTableFields = IssueTableFieldsFactory.GetIssueTableFields(true, useDbfFieldNames); var result = new ExceptionObjectRepository(workspace, issueTableFields, datasetContext, datasetResolver, areaOfInterest?.Geometry); List <QualityCondition> qualityConditions = qualitySpecification.Elements.Select(element => element.QualityCondition) .ToList(); InvolvedObjectsMatchCriteria involvedObjectsMatchCriteria = VerificationOptionUtils.GetInvolvedObjectMatchCriteria(verificationOptions); result.ReadExceptions(qualityConditions, VerificationOptionUtils.GetDefaultShapeMatchCriterion( verificationOptions), VerificationOptionUtils.GetDefaultExceptionObjectStatus( verificationOptions), involvedObjectsMatchCriteria); return(result); }
public static bool IsUpdateWorkspace([NotNull] IFeatureWorkspace workspace) { IIssueTableFields fields = IssueTableFieldsFactory.GetIssueTableFields( addExceptionFields: true, useDbfFieldNames: WorkspaceUtils.IsShapefileWorkspace((IWorkspace)workspace), addManagedExceptionFields: true); var requiredAttributes = new[] { IssueAttribute.ManagedExceptionLineageUuid, IssueAttribute.ManagedExceptionVersionUuid }; return(IssueRepositoryUtils.GetIssueObjectClasses(workspace) .Cast <ITable>() .All(tbl => requiredAttributes.All( att => HasField( tbl, att, fields)))); }
private static IIssueTableFieldManagement GetFields( IssueRepositoryType issueRepositoryType, bool addExceptionFields) { switch (issueRepositoryType) { case IssueRepositoryType.None: return(null); case IssueRepositoryType.FileGdb: return(IssueTableFieldsFactory.GetIssueTableFields(addExceptionFields)); case IssueRepositoryType.Shapefiles: return(IssueTableFieldsFactory.GetIssueTableFields(addExceptionFields, useDbfFieldNames: true)); default: throw new ArgumentOutOfRangeException(nameof(issueRepositoryType)); } }