Пример #1
0
        public void CanIgnoreAllDatasetsForDataSource()
        {
            var ignoredDatasets =
                new List <XmlInvolvedObjectsMatchCriterionIgnoredDatasets>
            {
                new XmlInvolvedObjectsMatchCriterionIgnoredDatasets
                {
                    ModelName = "MODEL1"
                }
            };

            var criteria = new InvolvedObjectsMatchCriteria(ignoredDatasets);

            var model1 = new DummyModel("model1");
            DummyTableDataset dataset11 = model1.AddDataset(new DummyTableDataset("dataset1"));
            DummyTableDataset dataset12 = model1.AddDataset(new DummyTableDataset("dataset2"));
            DummyTableDataset dataset13 = model1.AddDataset(new DummyTableDataset("dataset3"));

            var model2 = new DummyModel("model2");
            DummyTableDataset dataset21 = model2.AddDataset(new DummyTableDataset("dataset1"));

            Assert.True(criteria.IgnoreDataset(dataset11));
            Assert.True(criteria.IgnoreDataset(dataset12));
            Assert.True(criteria.IgnoreDataset(dataset13));
            Assert.False(criteria.IgnoreDataset(dataset21));
        }
        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);
        }