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)); }
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()))); }