public Azureblobhelper(Azure.Storage.BlobStorage azureblobStorage) { _azureblobStorage = azureblobStorage; }
public static void Run([QueueTrigger("EmailQueue", Connection = "EmailQueueConnection")] string myQueueItem, [SendGrid(ApiKey = "SendgridApiKey")] out SendGridMessage message, ILogger log, ExecutionContext context) { try { var config = new ConfigurationBuilder() .SetBasePath(context.FunctionAppDirectory) .AddJsonFile("local.settings.json", optional: true, reloadOnChange: true) .AddEnvironmentVariables() .Build(); AzureStorageAccount = config["AzureStorageAccount"]; AzureStorageConnectionSecretKey = config["AzureStorageConnectionSecretKey"]; EmailTemplateContainer = config["EmailTemplateContainer"]; log.LogInformation($"C# Queue trigger function processed: {myQueueItem}"); var emailObject = JsonConvert.DeserializeObject <OutgoingEmail>(myQueueItem); Azure.Storage.BlobStorage templateBlob = new Azure.Storage.BlobStorage(AzureStorageAccount, AzureStorageConnectionSecretKey, EmailTemplateContainer); // Azure.Storage.BlobStorage azureblobstorage = new Azure.Storage.BlobStorage(azureStorageAccountName, azureStorageAccountKey, azureContainerName); string blobpath = templateBlob._cloudBlobContainer.Uri + "/" + "emailRegistration.html"; log.LogInformation($"Blob Path: {blobpath}"); Uri uri = new Uri(blobpath, UriKind.Absolute); StorageCredentials configreaderstoragecredential = new StorageCredentials(AzureStorageAccount, AzureStorageConnectionSecretKey); CloudBlobClient clb = new CloudBlobClient(uri, configreaderstoragecredential); var blobRefrence = clb.GetBlobReferenceFromServerAsync(uri).Result; var configuration = Helper.Azureblobhelper.DownloadBlockbBlob(uri, configreaderstoragecredential); if (configuration.Length > 0) { log.LogInformation($"Blob Path: {blobpath}"); } //{firstName} {lastName} log.LogInformation($"Blob Path: {emailObject.FirstName} and {emailObject.LastName}"); string str = configuration.Replace("{firstName}", emailObject.FirstName); string emailbody = str.Replace("{lastName}", emailObject.LastName); log.LogInformation($"emailbody body created"); message = new SendGridMessage(); message.AddTo(emailObject.EmailAddress); message.AddContent("text/html", emailbody); message.SetFrom(new EmailAddress("*****@*****.**")); message.SetSubject("Registration Confirmation email from notification system."); log.LogInformation($"execution done"); } catch (Exception e) { log.LogInformation($"exception occoured {e.Message}"); message = null; } }