private void ApplyCorsRules(ApplicationConfiguration configuration)
{
foreach (ApplicationStorageAccount storageAccount in configuration.StorageAccounts.Values)
{
CloudStorageAccount cloudStorageAccount = null;
CloudTableClient tableClient = null;
ServiceProperties tableProperties = null;
CloudBlobClient blobClient = null;
ServiceProperties blobProperties = null;
CloudQueueClient queueClient = null;
ServiceProperties queueProperties = null;
foreach (ApplicationCorsRule rule in storageAccount.CorsRules)
{
if (cloudStorageAccount == null)
{
cloudStorageAccount = CloudStorageAccount.Parse(storageAccount.ConnectionString);
}
if (rule.ApplyToTables)
{
if (tableClient == null)
{
tableClient = cloudStorageAccount.CreateCloudTableClient();
tableProperties = tableClient.GetServiceProperties();
}
tableProperties.Cors.CorsRules.Add(CreateCorsRule(rule));
}
if (rule.ApplyToQueues)
{
if (queueClient == null)
{
queueClient = cloudStorageAccount.CreateCloudQueueClient();
queueProperties = queueClient.GetServiceProperties();
}
queueProperties.Cors.CorsRules.Add(CreateCorsRule(rule));
}
if (rule.ApplyToBlobs)
{
if (blobClient == null)
{
blobClient = cloudStorageAccount.CreateCloudBlobClient();
blobProperties = blobClient.GetServiceProperties();
}
blobProperties.Cors.CorsRules.Add(CreateCorsRule(rule));
}
}
tableClient?.SetServiceProperties(tableProperties);
blobClient?.SetServiceProperties(blobProperties);
queueClient?.SetServiceProperties(queueProperties);
}
}