public ExceptionObjectEvaluator(
            [NotNull] IEnumerable <ExceptionObject> exceptionObjects,
            [NotNull] IDictionary <Guid, QualityCondition> conditionsByUuid,
            [NotNull] IExceptionEvaluationStatistics exceptionEvaluationStatistics,
            [NotNull] IQualityConditionObjectDatasetResolver datasetResolver,
            [CanBeNull] InvolvedObjectsMatchCriteria involvedObjectsMatchCriteria,
            [CanBeNull] IGeometry areaOfInterest)
        {
            Assert.ArgumentNotNull(exceptionObjects, nameof(exceptionObjects));
            Assert.ArgumentNotNull(conditionsByUuid, nameof(conditionsByUuid));
            Assert.ArgumentNotNull(exceptionEvaluationStatistics,
                                   nameof(exceptionEvaluationStatistics));
            Assert.ArgumentNotNull(datasetResolver, nameof(datasetResolver));

            _conditionsByUuid = conditionsByUuid;
            _exceptionEvaluationStatistics = exceptionEvaluationStatistics;
            _datasetResolver = datasetResolver;
            _involvedObjectsMatchCriteria = involvedObjectsMatchCriteria;

            _aoiBox = areaOfInterest == null || areaOfInterest.IsEmpty
                                          ? null
                                          : QaGeometryUtils.CreateBox(areaOfInterest.Envelope);

            foreach (ExceptionObject exceptionObject in exceptionObjects)
            {
                Add(exceptionObject);
            }
        }
Example #2
0
            private static HashSet <IObjectDataset> GetIgnoredObjectDatasets(
                [NotNull] QualityCondition qualityCondition,
                [CanBeNull] InvolvedObjectsMatchCriteria criteria)
            {
                if (criteria == null)
                {
                    return(null);
                }

                HashSet <IObjectDataset> result = null;

                foreach (Dataset dataset in qualityCondition.GetDatasetParameterValues())
                {
                    var objectDataset = dataset as IObjectDataset;
                    if (objectDataset == null || !criteria.IgnoreDataset(objectDataset))
                    {
                        continue;
                    }

                    if (result == null)
                    {
                        result = new HashSet <IObjectDataset>();
                    }

                    result.Add(objectDataset);
                }

                return(result);
            }
Example #3
0
            public InvolvedObjectsIgnoredDatasetPredicate(
                [NotNull] QualityCondition qualityCondition,
                [NotNull] IQualityConditionObjectDatasetResolver datasetResolver,
                [CanBeNull] InvolvedObjectsMatchCriteria criteria)
            {
                _qualityCondition = qualityCondition;
                _datasetResolver  = datasetResolver;

                _ignoredObjectDatasets = GetIgnoredObjectDatasets(qualityCondition, criteria);
            }
Example #4
0
        public QualityConditionExceptions(
            [NotNull] QualityCondition qualityCondition,
            [NotNull] IQualityConditionObjectDatasetResolver datasetResolver,
            [CanBeNull] InvolvedObjectsMatchCriteria involvedObjectsMatchCriteria,
            [CanBeNull] IBox areaOfInterestBox)
        {
            Assert.ArgumentNotNull(qualityCondition, nameof(qualityCondition));
            Assert.ArgumentNotNull(datasetResolver, nameof(datasetResolver));

            _areaOfInterestBox           = areaOfInterestBox;
            _qualityConditionVersionGuid = new Guid(qualityCondition.VersionUuid);

            _ignoredDatasetsPredicate = new InvolvedObjectsIgnoredDatasetPredicate(
                qualityCondition, datasetResolver, involvedObjectsMatchCriteria);

            _involvedRowsPredicate = new ExceptionObjectInvolvedRowsPredicate(
                _ignoredDatasetsPredicate.IgnoreDataset);
        }