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));
        }
コード例 #2
0
        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);
        }
コード例 #6
0
 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);
 }