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); }
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); }
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; } }