private void PostRules()
        {
            foreach (var rule in _model.rules)
            {
                var ja = new JArray();

                foreach (var configItem in rule.configItems)
                {
                    ja.Add(new JObject {
                        ["key"] = configItem.name, ["values"] = new JArray(configItem.value), ["type"] = configItem.type
                    });
                }

                var newRule = new JObject
                {
                    ["projectId"]         = Application.cloudProjectId,
                    ["environmentId"]     = _data.environmentId,
                    ["configId"]          = _data.configId,
                    ["id"]                = Guid.NewGuid().ToString(),
                    ["name"]              = rule.name,
                    ["enabled"]           = rule.enabled,
                    ["condition"]         = rule.conditions,
                    ["rolloutPercentage"] = rule.rolloutPercentage,
                    ["startDate"]         = "",
                    ["endDate"]           = "",
                    ["type"]              = "segmentation",
                    ["value"]             = ja
                };

                RemoteConfigWebApiClient.PostAddRule(Application.cloudProjectId, _data.environmentId, _data.configId, newRule, OnException);
            }

            Debug.Log("RemoteConfigHelper Done");
        }
        private void SetEnvironment()
        {
            _data = new EnvironmentData();

            RemoteConfigWebApiClient.CreateEnvironment(Application.cloudProjectId, _model.environmentName, OnException);
            RemoteConfigWebApiClient.environmentCreated += OnEnvironmentCreated;
        }
示例#3
0
 public void PostAddRule_ThrowsArgumentExceptionOnBadArgs()
 {
     try
     {
         RemoteConfigWebApiClient.PostAddRule(null, null, null, new JObject());
     }
     catch (ArgumentException ex)
     {
         Assert.That(ex.GetType() == typeof(ArgumentException));
     }
 }
示例#4
0
 public void PutConfig_ThrowsArgumentExceptionOnBadArgs()
 {
     try
     {
         RemoteConfigWebApiClient.PutConfig(null, null, null, null);
     }
     catch (ArgumentException ex)
     {
         Assert.That(ex.GetType() == typeof(ArgumentException));
     }
 }
示例#5
0
 public void FetchDefaultEnvironment_ThrowsArgumentExceptionOnBadArgs()
 {
     try
     {
         RemoteConfigWebApiClient.FetchDefaultEnvironment(null);
     }
     catch (ArgumentException ex)
     {
         Assert.That(ex.GetType() == typeof(ArgumentException));
     }
 }
示例#6
0
        void PushSettings(JArray settingsArr)
        {
            isMakingHttpCall = true;
            var newSettings = new JArray();

            foreach (var t in settingsArr)
            {
                newSettings.Add(t["rs"].DeepClone());
            }

            RemoteConfigWebApiClient.settingsRequestFinished += RemoteConfigWebApiClient_settingsRequestFinished;
            RemoteConfigWebApiClient.PutConfig(Application.cloudProjectId, environmentId, configId, newSettings);
        }
        private void OnEnvironmentCreated(string responce)
        {
            RemoteConfigWebApiClient.environmentCreated -= OnEnvironmentCreated;
            _data.environmentId = responce;

            RemoteConfigWebApiClient.SetDefaultEnvironment(Application.cloudProjectId, _data.environmentId);

            JArray ja = new JArray();

            foreach (var configItem in _model.configItems)
            {
                ja.Add(new JObject {
                    ["key"] = configItem.name, ["value"] = configItem.value, ["type"] = configItem.type
                });
            }

            RemoteConfigWebApiClient.postConfigRequestFinished += OnConfigPosted;
            RemoteConfigWebApiClient.PostConfig(Application.cloudProjectId, _data.environmentId, ja);
        }
示例#8
0
        private void RemoteConfigWebApiClient_fetchEnvironmentsFinished(JArray environments)
        {
            JObject gsEnv = null;

            foreach (var environment in environments)
            {
                if (environment["name"].Value <string>() == "GameSim")
                {
                    gsEnv         = (JObject)environment;
                    environmentId = gsEnv["id"].Value <string>();
                    FetchConfig(environmentId);
                    break;
                }
            }
            if (gsEnv == null)
            {
                RemoteConfigWebApiClient.environmentCreated += RemoteConfigWebApiClient_environmentCreated;
                RemoteConfigWebApiClient.CreateEnvironment(Application.cloudProjectId, "GameSim");
            }
        }
示例#9
0
        private void RemoteConfigWebApiClient_fetchConfigsFinished(JObject config)
        {
            RemoteConfigWebApiClient.fetchConfigsFinished -= RemoteConfigWebApiClient_fetchConfigsFinished;
            if (config.HasValues)
            {
                configId = config["id"].Value <string>();
                settings = AddMetadataToSettings((JArray)config["value"]);
                UpdateSettingsTreeview(settings);

                if (_simulationParametersTreeview != null)
                {
                    var items = new List <GameSimParametersTreeElement>();

                    foreach (var setting in settings)
                    {
                        var element = new GameSimParametersTreeElement
                        {
                            Key          = (string)setting["rs"]["key"],
                            Type         = (string)setting["rs"]["type"],
                            DefaultValue = (string)setting["rs"]["value"],
                            Values       = ""
                        };

                        items.Add(element);
                    }

                    _simulationParametersTreeview?.Setup(items.ToArray());
                }
            }
            else
            {
                RemoteConfigWebApiClient.postConfigRequestFinished += RemoteConfigWebApiClient_postConfigRequestFinished;
                RemoteConfigWebApiClient.PostConfig(Application.cloudProjectId, environmentId, new JArray());
            }
            isMakingHttpCall = false;
        }
示例#10
0
 void FetchEnvironments()
 {
     isMakingHttpCall = true;
     RemoteConfigWebApiClient.FetchEnvironments(Application.cloudProjectId);
 }
示例#11
0
 void FetchConfig(string envId)
 {
     RemoteConfigWebApiClient.fetchConfigsFinished += RemoteConfigWebApiClient_fetchConfigsFinished;
     RemoteConfigWebApiClient.FetchConfigs(Application.cloudProjectId, envId);
 }
示例#12
0
 /// <summary>
 /// Requests parameter type information from remote config and stores it
 /// </summary>
 public static void Init()
 {
     RemoteConfigWebApiClient.fetchEnvironmentsFinished += RemoteConfigEnvironmentsFetched;
     RemoteConfigWebApiClient.FetchEnvironments(Application.cloudProjectId);
 }