コード例 #1
0
        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
            });
        }
コード例 #2
0
 public void Initialise(TogglesResult toggles)
 {
     ReadWritwLock.TryEnterWriteLock(ReadWriteLockTimeout);
     try
     {
         Toggles.Toggles.Clear();
         Toggles = toggles.ToggleCollection;
     }
     finally
     {
         ReadWritwLock.ExitWriteLock();
     }
 }