示例#1
0
        public async Task Run_Saves_File_Into_BlobStorage()
        {
            var request = new ApplyFileExtractRequest(new SubmittedApplicationAnswer());
            await _sut.Run(request);

            _blobClient.Verify(x => x.UploadAsync(It.IsAny <Stream>(), true, It.IsAny <CancellationToken>()), Times.AtLeastOnce);
        }
示例#2
0
        public async Task Run_Logs_Debug_Message()
        {
            var request = new ApplyFileExtractRequest(new SubmittedApplicationAnswer());
            await _sut.Run(request);

            _logger.Verify(x => x.Log(LogLevel.Debug, It.IsAny <EventId>(), It.IsAny <It.IsAnyType>(), It.IsAny <Exception>(), It.IsAny <Func <It.IsAnyType, Exception, string> >()), Times.AtLeastOnce);
        }
示例#3
0
        public async Task Run([ServiceBusTrigger("%ApplyFileExtractQueue%", Connection = "DASServiceBusConnectionString")] ApplyFileExtractRequest fileToExtract)
        {
            _logger.LogDebug($"Saving QnA file into Datamart for application {fileToExtract.ApplicationId},  question: {fileToExtract.QuestionId}, filename: {fileToExtract.Filename}");

            var blobContainerClient = await _datamartBlobStorageFactory.GetQnABlobContainerClient();

            try
            {
                await using var filestream = await _qnaApiClient.DownloadFile(fileToExtract.ApplicationId, fileToExtract.SequenceNumber, fileToExtract.SectionNumber, fileToExtract.PageId, fileToExtract.QuestionId);

                var blobName = $"{fileToExtract.ApplicationId}/{fileToExtract.PageId}/{fileToExtract.QuestionId}/Apply/{fileToExtract.Filename}";

                var blobClient = blobContainerClient.GetBlobClient(blobName);
                await blobClient.UploadAsync(filestream, overwrite : true);

                _logger.LogInformation($"Saved QnA file into Datamart for application {fileToExtract.ApplicationId},  question: {fileToExtract.QuestionId}, filename: {fileToExtract.Filename}. Data-mart path: {blobName}");
            }
            catch (Exception ex)
            {
                _logger.LogError(ex, $"Unable to save QnA file into Datamart for application {fileToExtract.ApplicationId} and question {fileToExtract.QuestionId}, filename: {fileToExtract.Filename}");
                throw;
            }
        }