protected virtual async Task <PublishedFundingVersion> GetPreviousPublishedFundingVersion(PublishedFundingVersion currentVersion, PublishedFundingUndoTaskContext taskContext) { LogInformation($"Querying latest earlier published funding version for '{taskContext.Parameters}'"); UndoTaskDetails details = taskContext.PublishedFundingVersionDetails; return(await Cosmos.GetLatestEarlierPublishedFundingVersion(details.FundingStreamId, details.FundingPeriodId, details.TimeStamp, currentVersion.OrganisationGroupTypeIdentifier, currentVersion.OrganisationGroupIdentifierValue, currentVersion.GroupingReason)); }
public async Task Run(PublishedFundingUndoTaskContext taskContext) { LogStartingTask(); Guard.ArgumentNotNull(taskContext?.PublishedFundingVersionDetails, nameof(taskContext.PublishedFundingVersionDetails)); UndoTaskDetails details = taskContext.PublishedFundingVersionDetails; ICosmosDbFeedIterator <PublishedFundingVersion> feed = GetPublishedFundingVersionsFeed(details); FeedContext <PublishedFundingVersion> feedContext = new FeedContext <PublishedFundingVersion>(taskContext, feed); IProducerConsumer producerConsumer = ProducerConsumerFactory.CreateProducerConsumer(ProducePublishedFundingVersions, UndoPublishedFundingVersions, 200, 4, Logger); await producerConsumer.Run(feedContext); await NotifyJobProgress(taskContext); LogCompletedTask(); }
public async Task GetCorrelationIdDetailsForPublishedFundingVersions() { UndoTaskDetails expectedDetails = NewUndoTaskDetails(); string correlationId = NewRandomString(); GivenTheCorrelationIdDetailsForCosmosQuery(@"SELECT MIN(p._ts) AS timeStamp, p.content.fundingStreamId, p.content.fundingPeriod.id AS fundingPeriodId FROM publishedFundingVersion p WHERE p.documentType = 'PublishedFundingVersion' AND p.content.correlationId = @correlationId AND p.deleted = false GROUP BY p.content.fundingStreamId, p.content.fundingPeriod.id", correlationId, expectedDetails); UndoTaskDetails actualDetails = await _repository.GetCorrelationIdDetailsForPublishedFundingVersions(correlationId); actualDetails .Should() .BeSameAs(expectedDetails); }
protected override ICosmosDbFeedIterator <PublishedFundingVersion> GetPublishedFundingVersionsFeed(UndoTaskDetails details) => Cosmos.GetPublishedFundingVersionsFromVersion(details.FundingStreamId, details.FundingPeriodId, details.Version);
public PublishedFundingUndoTaskContextBuilder WithPublishedProviderDetails(UndoTaskDetails details) { _publishedProviderDetails = details; return(this); }
protected virtual ICosmosDbFeedIterator <PublishedFundingVersion> GetPublishedFundingVersionsFeed(UndoTaskDetails details) => Cosmos.GetPublishedFundingVersions(details.FundingStreamId, details.FundingPeriodId, details.TimeStamp);
private void AndThePublishedProviderVersionsCorrelationDetails(UndoTaskDetails details) { Cosmos.Setup(_ => _.GetCorrelationIdDetailsForPublishedProviderVersions(Parameters.ForCorrelationId)) .ReturnsAsync(details); }
private void GivenThePublishedFundingCorrelationDetails(UndoTaskDetails details) { Cosmos.Setup(_ => _.GetCorrelationIdDetailsForPublishedFunding(Parameters.ForCorrelationId)) .ReturnsAsync(details); }