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); }
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)); }