private void GenerateGroupedPublishedProviderEstateCsv( IEnumerable <IGrouping <string, PublishedProviderVersion> > providerVersionGroup, IPublishedProviderCsvTransform publishedProviderCsvTransform, string temporaryFilePath, bool outputHeaders) { IEnumerable <ExpandoObject> csvRows = publishedProviderCsvTransform.Transform(providerVersionGroup); AppendCsvFragment(temporaryFilePath, csvRows, outputHeaders); }
public override async Task Process(Message message) { string temporaryFilePath = GetCsvFilePath(_fileSystemCacheSettings.Path, message); EnsureFileIsNew(temporaryFilePath); IPublishedProviderCsvTransform publishedProviderCsvTransform = _publishedProviderCsvTransformServiceLocator.GetService(JobDefinitionName); bool processedResults = await GenerateCsv(message, temporaryFilePath, publishedProviderCsvTransform); if (!processedResults) { _logger.Information("Did not create a new csv report as no providers matched"); return; } await UploadToBlob(temporaryFilePath, GetCsvFileName(message), GetContentDisposition(message), GetMetadata(message)); }
protected override async Task <bool> GenerateCsv(Message message, string temporaryFilePath, IPublishedProviderCsvTransform publishedProviderCsvTransform) { bool outputHeaders = true; bool processedResults = false; string specificationId = message.GetUserProperty <string>("specification-id"); await _publishedFundingRepositoryPolicy.ExecuteAsync(() => _publishedFundingRepository.RefreshedProviderVersionBatchProcessing(specificationId, publishedProviderVersions => { List <IGrouping <string, PublishedProviderVersion> > providerVersionGroups = publishedProviderVersions.GroupBy(v => v.ProviderId).ToList(); GenerateGroupedPublishedProviderEstateCsv(providerVersionGroups, publishedProviderCsvTransform, temporaryFilePath, outputHeaders); outputHeaders = false; processedResults = true; return(Task.CompletedTask); }, BatchSize) ); return(processedResults); }
protected abstract Task <bool> GenerateCsv(Message message, string temporaryFilePath, IPublishedProviderCsvTransform publishedProviderCsvTransform);