Exemple #1
0
 public BackgroundVerificationService(
     [NotNull] IDomainTransactionManager domainTransactions,
     [NotNull] IDatasetLookup datasetLookup) : base(
         new GdbTransaction(), datasetLookup)
 {
     _domainTransactions = domainTransactions;
 }
Exemple #2
0
        public static IErrorDataset GetErrorDataset([NotNull] IObject errorObject,
                                                    [NotNull] IDatasetLookup datasetLookup)
        {
            Assert.ArgumentNotNull(errorObject, nameof(errorObject));
            Assert.ArgumentNotNull(datasetLookup, nameof(datasetLookup));

            var dataset = (IErrorDataset)datasetLookup.GetDataset(errorObject);

            Assert.NotNull(dataset, "error dataset not found for {0}",
                           GdbObjectUtils.ToString(errorObject));
            return(dataset);
        }
        public static IDictionary <IObjectClass, IObjectDataset> GetDatasetsByObjectClass(
            [NotNull] IEnumerable <IObject> objects,
            [NotNull] IDatasetLookup datasetLookup)
        {
            var result = new Dictionary <IObjectClass, IObjectDataset>();

            foreach (IObject obj in objects)
            {
                IObjectClass objectClass = obj.Class;

                IObjectDataset dataset;
                if (!result.TryGetValue(objectClass, out dataset))
                {
                    dataset = datasetLookup.GetDataset(objectClass);
                    result.Add(objectClass, dataset);
                }
            }

            return(result);
        }
Exemple #4
0
        public ObjectSelection(
            [NotNull] IEnumerable <IObject> selectedObjects,
            [NotNull] IDatasetLookup datasetLookup,
            [NotNull] IQualityConditionObjectDatasetResolver datasetResolver)
        {
            Assert.ArgumentNotNull(selectedObjects, nameof(selectedObjects));
            Assert.ArgumentNotNull(datasetLookup, nameof(datasetLookup));
            Assert.ArgumentNotNull(datasetResolver, nameof(datasetResolver));

            _datasetResolver = datasetResolver;

            ICollection <IObject> objectCollection =
                CollectionUtils.GetCollection(selectedObjects);

            IDictionary <IObjectClass, IObjectDataset> datasetsByClass =
                VerificationUtils.GetDatasetsByObjectClass(
                    objectCollection, datasetLookup);

            foreach (IObject obj in objectCollection)
            {
                if (!obj.HasOID)
                {
                    continue;
                }

                IObjectClass   objectClass = obj.Class;
                IObjectDataset dataset     = datasetsByClass[objectClass];

                Assert.NotNull(dataset, "Unable to resolve dataset for object class {0}",
                               DatasetUtils.GetName(objectClass));

                HashSet <int> objectIds;
                if (!_objectsByDataset.TryGetValue(dataset, out objectIds))
                {
                    objectIds = new HashSet <int>();
                    _objectsByDataset.Add(dataset, objectIds);
                }

                objectIds.Add(obj.OID);
            }
        }
Exemple #5
0
        private static IEnumerable <IFeature> GetDerivedTableGeometryFeatures(
            [NotNull] IObject obj,
            [NotNull] IDatasetLookup datasetLookup,
            [NotNull] IModelContext modelContext)
        {
            Assert.ArgumentNotNull(obj, nameof(obj));
            Assert.ArgumentNotNull(datasetLookup, nameof(datasetLookup));

            ObjectDataset dataset = datasetLookup.GetDataset(obj);

            if (dataset == null)
            {
                yield break;
            }

            foreach (IFeature feature in GetDerivedTableGeometryFeatures(
                         obj, dataset, modelContext))
            {
                yield return(feature);
            }
        }
Exemple #6
0
        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);
        }
        internal static void AssignExecutionTimes(
            [NotNull] QualityVerification qualityVerification,
            [NotNull] IEnumerable <KeyValuePair <ITest, TestVerification> > testVerifications,
            [NotNull] VerificationTimeStats verificationTimeStats,
            [NotNull] IDatasetLookup datasetLookup)
        {
            // Assign execute time
            foreach (KeyValuePair <ITest, TestVerification> pair in testVerifications)
            {
                AssignExecutionTime(pair.Key,
                                    pair.Value.QualityConditionVerification,
                                    verificationTimeStats);
            }

            // Assign load time
            foreach (
                KeyValuePair <IDataset, double> pair in verificationTimeStats.DatasetLoadTimes)
            {
                IDataset gdbDataset = pair.Key;

                Dataset dataset = datasetLookup.GetDataset((IDatasetName)gdbDataset.FullName);

                if (dataset == null)
                {
                    continue;
                }

                QualityVerificationDataset verificationDataset =
                    qualityVerification.GetVerificationDataset(dataset);

                if (verificationDataset != null)
                {
                    verificationDataset.LoadTime = pair.Value / 1000.0;
                }
            }
        }