Ejemplo n.º 1
0
        public AzureStorageServiceRepository(
            ICloudStorageAccountFactory cloudStorageAccountFactory,
            IAzureWebJobsEnviromentalSettings azureWebJobsEnviromentalSettings)
        {
            var accountNames = new HashSet <string>();

            var defaultAccountName = ConnectionStringParser.GetAccountName(
                azureWebJobsEnviromentalSettings.DefaultStorageConnectionString);

            accountNames.Add(defaultAccountName);

            var defaultStorageAccount = cloudStorageAccountFactory.Create(
                azureWebJobsEnviromentalSettings.DefaultStorageConnectionString);
            var registryTable = defaultStorageAccount.TableClient.GetTableReference("registry");

            _registryTables.Add(registryTable);

            foreach (var setting in azureWebJobsEnviromentalSettings.GetAllSettings())
            {
                if (!setting.Key.EndsWith("_STORAGE"))
                {
                    continue;
                }

                var connectionString = setting.Value;
                var accountName      = ConnectionStringParser.GetAccountName(connectionString);
                if (!accountNames.Add(accountName))
                {
                    continue;
                }

                var storageAccount = cloudStorageAccountFactory.Create(connectionString);
                registryTable = storageAccount.TableClient.GetTableReference("registry");
                _registryTables.Add(registryTable);
            }
        }