Exemplo n.º 1
0
        private IEnumerable <ActivityDiscrepancy> BuildQueue(IIntegrityCheckConfiguration scanParameters, IFixActionReaderLogger logger)
        {
            var parameters = new ActivityDiscrepancyFinderParameters
            {
                BatchSize      = scanParameters.CosmosPageSize,
                MaxInspections = scanParameters.MaxInspections,
                ReaderLogger   = logger
            };

            IEnumerable <ActivityDiscrepancy> discrepancies = _finder.Scan(parameters);

            if (scanParameters.MaxDiscrepancies.HasValue && scanParameters.MaxDiscrepancies > -1)
            {
                discrepancies = discrepancies.Take(scanParameters.MaxDiscrepancies.Value);
            }

            return(discrepancies);
        }
        private IEnumerable <Activity> FetchNextPageFromElastic(ElasticPagingData pagingData, IFixActionReaderLogger readerLogger)
        {
            var activities = FetchNextPageOfActivities(pagingData).Result;

            readerLogger?.IncrementElasticActivities(pagingData.CurrentPageSize);
            return(activities);
        }
Exemplo n.º 3
0
        public Task ScanForDiscrepanciesAsync(IIntegrityCheckConfiguration scanParameters, IFixActionReaderLogger logger, CancellationToken cancellationToken)
        {
            return(Task.Run(() =>
            {
                var discrepancies = BuildQueue(scanParameters, logger);

                foreach (var discrepancy in discrepancies)
                {
                    if (cancellationToken.IsCancellationRequested)
                    {
                        return;
                    }

                    _discrepancyQueue.Push(discrepancy);
                }

                _discrepancyQueue.AddComplete();
            }, cancellationToken));
        }