public Azureblobhelper(Azure.Storage.BlobStorage azureblobStorage)
 {
     _azureblobStorage = azureblobStorage;
 }
示例#2
0
        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;
            }
        }