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)); }); }
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); }
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); }
/// <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; }
public static void AddTableMessageQueueStorage(this IServiceCollection services, QueueStorageSettings queueStorageSettings) { services.AddSingleton <IQueueStorageRepository>(new QueueStorageRepository(queueStorageSettings)); services.AddSingleton <ITableMessageQueueStorageRepository, TableMessageQueueStorageRepository>(); }
private static ITableMessageQueueStorageRepository CreateTableMessageQueueStorageRepository(QueueStorageSettings settings) { return(new TableMessageQueueStorageRepository(new QueueStorageRepository(settings))); }
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); }