public async Task Revisions()
        {
            var connectionString = Environment.GetEnvironmentVariable("AZ_CONFIG_CONNECTION");

            Assert.NotNull(connectionString, "Set AZ_CONFIG_CONNECTION environment variable to the connection string");
            var service = new ConfigurationClient(connectionString);

            //Prepare environment
            ConfigurationSetting setting = s_testSetting;

            setting.Key = string.Concat("key-", Guid.NewGuid().ToString("N"));
            var testSettingUpdate = setting.Clone();

            testSettingUpdate.Label = "test_label_update";
            int expectedEvents = 2;

            try
            {
                await service.SetAsync(setting);

                await service.SetAsync(testSettingUpdate);

                // Test
                var filter = new BatchRequestOptions();
                filter.Key      = setting.Key;
                filter.Revision = DateTimeOffset.MaxValue;
                SettingBatch batch = await service.GetRevisionsAsync(filter, CancellationToken.None);

                int resultsReturned = 0;
                for (int i = 0; i < batch.Count; i++)
                {
                    var value = batch[i];
                    if (value.Label.Contains("update"))
                    {
                        Assert.AreEqual(value, testSettingUpdate);
                    }
                    else
                    {
                        Assert.AreEqual(value, setting);
                    }
                    resultsReturned++;
                }

                Assert.AreEqual(expectedEvents, resultsReturned);
            }
            finally
            {
                await service.DeleteAsync(setting.Key, setting.Label);

                await service.DeleteAsync(testSettingUpdate.Key, testSettingUpdate.Label);
            }
        }
        /// <summary>
        /// Adds the batch requests with default settings, optionally modified by the action
        /// </summary>
        /// <param name="serviceCollection">The service collection</param>
        /// <param name="batchRequestOptionsAction">The action to modify the default settings</param>
        /// <returns>The service collection</returns>
        public static IServiceCollection AddBatchRequest(this IServiceCollection serviceCollection, Action <BatchRequestOptions> batchRequestOptionsAction)
        {
            serviceCollection.AddRouting();
            serviceCollection.AddHttpContextAccessor();

            BatchRequestOptions batchRequestOptions = new BatchRequestOptions();

            if (batchRequestOptionsAction != null)
            {
                batchRequestOptionsAction.Invoke(batchRequestOptions);
            }

            BatchRequestOptionsDefaults.SetDefaults(batchRequestOptions);

            serviceCollection.AddSingleton(batchRequestOptions);
            serviceCollection.AddScoped <IBatchRequestService, BatchRequestService>();

            return(serviceCollection);
        }
 /// <summary>
 /// Initializes a new instance
 /// </summary>
 /// <param name="batchRequestOptions">The injected batch request options</param>
 public BatchRequestController(BatchRequestOptions batchRequestOptions, IBatchRequestService batchRequestService)
 {
     _batchRequestOptions = batchRequestOptions;
     _batchRequestService = batchRequestService;
 }
Пример #4
0
 internal SettingBatch(ConfigurationSetting[] settings, string link, BatchRequestOptions filter)
 {
     _settings = settings;
     _link     = link;
     _filter   = filter;
 }