public static void AddTodoBoardsServices(this IServiceCollection services, IConfigurationRoot configuration)
        {
            // Storage settings
            var accountKey           = configuration.GetValue <string>("BoardsApi:Storage:AccountKey");
            var accountName          = configuration.GetValue <string>("BoardsApi:Storage:AccountName");
            var tableStorageSettings = new TableStorageSettings
            {
                AccountKey  = accountKey,
                AccountName = accountName,
                TableName   = configuration.GetValue <string>("BoardsApi:Storage:BoardsTableName")
            };
            var boardDeletedQueueSettings = new QueueStorageSettings
            {
                AccountKey  = accountKey,
                AccountName = accountName,
                QueueName   = configuration.GetValue <string>("BoardsApi:Storage:BoardDeletedQueueName")
            };

            // Table message queue
            services.AddTableMessageQueueStorage(boardDeletedQueueSettings);

            // Board services
            services.AddSingleton <ITableStorageRepository <BoardEntity> >(serviceProvider =>
            {
                return(new TableStorageRepository <BoardEntity>(tableStorageSettings));
            });
        }
Exemplo n.º 2
0
 public EmailQueueWriter(QueueStorageSettings queueStorageSettings)
     : base(queueStorageSettings)
 {
     Queue = QueueClient.GetQueueReference(queueStorageSettings.NewOrdersEmailQueueName);
     if (!Queue.ExistsAsync().GetAwaiter().GetResult())
     {
         Queue.CreateIfNotExistsAsync().GetAwaiter().GetResult();
     }
 }
        private static async Task LoadSecretSettings(
            QueueStorageSettings queueStorageSettings,
            StorageSettings storageSettings,
            AppSettings appSettings,
            KeyVaultSettings keyVaultSettings)
        {
            var store = new SecretsStore(appSettings.KeyVaultBaseUrl, keyVaultSettings.ClientId, keyVaultSettings.ClientSecret);

            storageSettings.ConnectionString = await store.GetOrLoadSettingAsync(storageSettings.ConnectionString);

            queueStorageSettings.ConnectionString = await store.GetOrLoadSettingAsync(queueStorageSettings.ConnectionString);
        }
Exemplo n.º 4
0
        private static void ConfigureSettings(HostBuilderContext hostContext, IServiceCollection services)
        {
            var storageSettings  = new QueueStorageSettings();
            var appSettings      = new AppSettings();
            var keyVaultSettings = new KeyVaultSettings();

            hostContext.Configuration.GetSection(nameof(QueueStorageSettings)).Bind(storageSettings);
            hostContext.Configuration.GetSection(nameof(AppSettings)).Bind(appSettings);
            hostContext.Configuration.GetSection(nameof(KeyVaultSettings)).Bind(keyVaultSettings);

            LoadSecretSettings(storageSettings, appSettings, keyVaultSettings)
            .GetAwaiter()
            .GetResult();

            services.AddSingleton(storageSettings);
            services.AddSingleton(appSettings);
        }
Exemplo n.º 5
0
 /// <summary>
 /// Initializes a new instance of the <see cref="QueueService"/> class.
 /// </summary>
 /// <param name="settings">The queue storage settings</param>
 public QueueService(IOptions <QueueStorageSettings> settings)
 {
     _settings = settings.Value;
 }
Exemplo n.º 6
0
 public static void AddTableMessageQueueStorage(this IServiceCollection services, QueueStorageSettings queueStorageSettings)
 {
     services.AddSingleton <IQueueStorageRepository>(new QueueStorageRepository(queueStorageSettings));
     services.AddSingleton <ITableMessageQueueStorageRepository, TableMessageQueueStorageRepository>();
 }
Exemplo n.º 7
0
 private static ITableMessageQueueStorageRepository CreateTableMessageQueueStorageRepository(QueueStorageSettings settings)
 {
     return(new TableMessageQueueStorageRepository(new QueueStorageRepository(settings)));
 }
Exemplo n.º 8
0
        protected QueueWriter(QueueStorageSettings queueStorageSettings)
        {
            var storageAccount = CloudStorageAccount.Parse(queueStorageSettings.ConnectionString);

            QueueClient = storageAccount.CreateCloudQueueClient();
        }
 public static IServiceCollection AddForEvolveTableMessageQueueStorage(this IServiceCollection services, QueueStorageSettings queueStorageSettings)
 {
     services.TryAddSingleton <IQueueStorageRepository>(new QueueStorageRepository(queueStorageSettings));
     services.TryAddSingleton <ITableMessageQueueStorageRepository, TableMessageQueueStorageRepository>();
     return(services);
 }