AccidentalFish.ApplicationSupport.Powershell.NewApplicationResources.ApplyCorsRules C# (CSharp) Method

ApplyCorsRules() private method

private ApplyCorsRules ( ApplicationConfiguration configuration ) : void
configuration AccidentalFish.ApplicationSupport.Core.Configuration.ApplicationConfiguration
return void
        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);
            }
        }