public async Task <TogglesResult> GetAll(CancellationToken cancellationToken) { Logger.Trace($"Toggle: Get all toggles request"); var request = new HttpRequestMessage(HttpMethod.Get, _allTogglesUri); var responseString = await MakeRequest(request, cancellationToken); var jsonDataDictionary = (IDictionary <string, object>)SimpleJson.SimpleJson.DeserializeObject(responseString); var toggles = (JsonArray)jsonDataDictionary["toggles"]; if (toggles == null) { return(new TogglesResult { Modified = false }); } var toggleList = new List <FeatureToggle>(); foreach (var toggle in toggles) { var item = toggle as JsonObject; var featureToggle = new FeatureToggle((string)item["key"], (string)item["name"], (bool)item["on"]); toggleList.Add(featureToggle); } var toggleCollection = new ToggleCollection(toggleList); return(new TogglesResult { Modified = true, ToggleCollection = toggleCollection }); }
public void Initialise(TogglesResult toggles) { ReadWritwLock.TryEnterWriteLock(ReadWriteLockTimeout); try { Toggles.Toggles.Clear(); Toggles = toggles.ToggleCollection; } finally { ReadWritwLock.ExitWriteLock(); } }