コード例 #1
0
        private async Task <FeatureToggleResponse> GetToggleResponse(HttpResponseMessage response)
        {
            _etag = response.Headers.ETag?.Tag;
            var content = await response.Content.ReadAsStringAsync();

            var toggles = new ToggleCollection();

            try
            {
                toggles = JsonToggleParser.FromJson(content);
            }
            catch (Exception ex)
            {
                Logger.WarnException("received toggles failed", ex);
            }
            return(FeatureToggleResponse.Changed(toggles));
        }
コード例 #2
0
        public async Task <FeatureToggleResponse> FetchToggles()
        {
            var request = new HttpRequestMessage(HttpMethod.Get, UnleashURLs.FetchTogglesUri);

            if (!string.IsNullOrEmpty(_etag))
            {
                request.Headers.IfNoneMatch.Add(new EntityTagHeaderValue(_etag));
            }
            //useCache(true)
            UnleashConfig.SetRequestProperties(request.Headers, _unleashConfig);

            var result = await HttpClient.SendAsync(request);

            return(await(result.IsSuccessStatusCode ?
                         GetToggleResponse(result) :
                         Task.FromResult(FeatureToggleResponse.NotChanged())));
        }