示例#1
0
        private bool _Evaluate(KStore store, KUser user)
        {
            if (Identities.Contains(user.GetIdentity()))
            {
                return(true);
            }
            if (EnableRollout && !Rollout.Evaluate(Key + user.GetIdentity()))
            {
                return(false);
            }
            if (EnableRollout && Rules.ToList().Count == 0)
            {
                return(true);
            }

            return(Rules.Any(rule => rule.Evaluate(store, user)));
        }
示例#2
0
        public bool Evaluate(KStore store, KUser user)
        {
            switch (Targeting)
            {
            case KTargeting.DisabledForAll:
                return(false);

            case KTargeting.EnabledForAll:
                return(true);

            case KTargeting.EnabledForSomeUsers:
                return(_Evaluate(store, user));

            default:
                return(false);
            }
        }
示例#3
0
 public abstract bool Evaluate(KStore store, KUser user);
示例#4
0
 public bool Evaluate(KStore store, KUser user)
 {
     return(Rules.Any(rule => rule.Evaluate(store, user)));
 }
示例#5
0
        public string ValueOf(string remoteConfig, KUser user, string defaultValue)
        {
            var rc = _store.GetRemoteConfig(remoteConfig);

            return(rc?.Evaluate(_store, user) ?? defaultValue);
        }
示例#6
0
 public bool Evaluate(string feature, KUser user) =>
 _store.GetFeatureFlag(feature)?.Evaluate(_store, user) ?? false;
示例#7
0
        public KEvaluationResult Evaluate(KUser user)
        {
            var evaluatedFlags = _store.GetFeatureFlags().ToDictionary(x => x.Key, flag => flag.Evaluate(_store, user));

            return(new KEvaluationResult(evaluatedFlags));
        }
示例#8
0
 public string Evaluate(KStore store, KUser user)
 {
     return(Rules.Aggregate(DefaultValue, (s, rule) => rule.Evaluate(store, user) ? rule.Value : s));
 }