public IEnumerable <ActivityDiscrepancy> Scan(ActivityDiscrepancyFinderParameters parameters) { var cosmosPagingData = new CosmosPagingData(_cosmosRepository, parameters.BatchSize, parameters.MaxInspections); var elasticPagingData = new ElasticPagingData(_elasticRepository, parameters.BatchSize, parameters.MaxInspections); return(Zipper .Zip( () => FetchNextPageFromCosmos(cosmosPagingData, parameters.ReaderLogger), () => FetchNextPageFromElastic(elasticPagingData, parameters.ReaderLogger)) .Where(z => z.IsMissing) .Select(z => new ActivityDiscrepancy(z.Item, z.IsMissingInA ? ActivityDiscrepancyType.NotFoundInCosmos : ActivityDiscrepancyType.NotFoundInElastic))); }
public ActivityDiscrepancyFinderTestFixtures RunScan(int batchSize) { var finder = CreateActivityDiscrepancyFinder(); var parameters = new ActivityDiscrepancyFinderParameters { BatchSize = batchSize }; _results = finder.Scan(parameters).ToArray(); return(this); }
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); }