| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- using System;
- using System.IO;
- using Microsoft.Azure.Functions.Worker;
- using Microsoft.Extensions.Logging;
- using Microsoft.Azure.WebJobs;
- using GemBox.Spreadsheet;
- using BlackRockReportFunction.Models;
- using BlackRockReportFunction.Helpers;
- using Azure.Storage.Blobs;
- using BlackRockReportFunction.Bussines;
-
- namespace BlackRockReportFunction
- {
- public class ReportGeneratorFunction
- {
- private readonly ILogger _logger;
-
- public ReportGeneratorFunction(ILoggerFactory loggerFactory)
- {
- _logger = loggerFactory.CreateLogger<ReportGeneratorFunction>();
- }
-
- [Function("ReportGeneratorFunction")]
- [BlobOutput("report-container/BlackRock_Report.xslx", Connection = "AzureWebJobsStorage")]
- public async Task Run([QueueTrigger("queue1")] string myQueueItem)
- {
- _logger.LogInformation($"C# Queue trigger function processed: {myQueueItem}, gemboxKey: {"E0YU - JKLB - WFCE - N52P"}");
-
- var reportFile = await ReportGenerator.GenerateReportContent();
-
- string connection = Environment.GetEnvironmentVariable("AzureWebJobsStorage");
- string containerName = "report-container";
-
- _logger.LogInformation(connection);
-
- var blobClient = new BlobContainerClient(connection, containerName);
- var blob = blobClient.GetBlobClient($"BlackRockReport_{DateTime.Now.ToString("f")}.xlsx");
-
- Stream memoryStream = new MemoryStream();
- reportFile.Save(memoryStream, new XlsxSaveOptions
- {
- Type = XlsxType.Xlsx
- });
-
- memoryStream.Position = 0;
- await blob.UploadAsync(memoryStream);
-
- _logger.LogInformation("File uploaded successfully!");
- }
- }
- }
|