internal FlagEventPropertiesBuilder(IFlagEventProperties from)
 {
     _key                  = from.Key;
     _version              = from.Version;
     _trackEvents          = from.TrackEvents;
     _debugEventsUntilDate = from.DebugEventsUntilDate;
 }
예제 #2
0
 /// <summary>
 /// Creates a feature request event for an evaluation that returned the default value
 /// (i.e. an error), even though the flag existed.
 /// </summary>
 /// <param name="flag">abstraction of the basic flag properties we need</param>
 /// <param name="user">the user passed to the Variation method</param>
 /// <param name="defaultVal">the default value passed to the Variation method</param>
 /// <param name="errorKind">the type of error</param>
 /// <returns>an event</returns>
 internal FeatureRequestEvent NewDefaultFeatureRequestEvent(IFlagEventProperties flag, User user,
                                                            LdValue defaultVal, EvaluationErrorKind errorKind)
 {
     return(new FeatureRequestEvent(GetTimestamp(), flag.Key, user, null, defaultVal, defaultVal,
                                    flag.EventVersion, null, flag.TrackEvents, flag.DebugEventsUntilDate, false,
                                    IncludeReasons ? EvaluationReason.ErrorReason(errorKind) : null));
 }
예제 #3
0
        /// <summary>
        /// Creates a feature request event for a successful evaluation of a prerequisite flag.
        /// </summary>
        /// <param name="prereqFlag">the prerequisite flag</param>
        /// <param name="user">the user passed to the Variation method</param>
        /// <param name="result">the evaluation result</param>
        /// <param name="prereqOf">the flag that used this flag as a prerequisite</param>
        /// <returns>an event</returns>
        internal FeatureRequestEvent NewPrerequisiteFeatureRequestEvent(IFlagEventProperties prereqFlag, User user,
                                                                        EvaluationDetail <LdValue> result, IFlagEventProperties prereqOf)
        {
            bool experiment = prereqFlag.IsExperiment(result.Reason);

            return(new FeatureRequestEvent(GetTimestamp(), prereqFlag.Key, user, result.VariationIndex, result.Value, LdValue.Null,
                                           prereqFlag.EventVersion, prereqOf.Key, experiment || prereqFlag.TrackEvents, prereqFlag.DebugEventsUntilDate, false,
                                           (experiment || IncludeReasons) ? result.Reason : null));
        }
예제 #4
0
        /// <summary>
        /// Creates a feature request event for a successful evaluation.
        /// </summary>
        /// <param name="flag">abstraction of the basic flag properties we need</param>
        /// <param name="user">the user passed to the Variation method</param>
        /// <param name="result">the evaluation result</param>
        /// <param name="defaultVal">the default value passed to the Variation method</param>
        /// <returns>an event</returns>
        internal FeatureRequestEvent NewFeatureRequestEvent(IFlagEventProperties flag, User user,
                                                            EvaluationDetail <LdValue> result, LdValue defaultVal)
        {
            bool experiment = flag.IsExperiment(result.Reason);

            return(new FeatureRequestEvent(GetTimestamp(), flag.Key, user, result.VariationIndex, result.Value, defaultVal,
                                           flag.EventVersion, null, experiment || flag.TrackEvents, flag.DebugEventsUntilDate, false,
                                           (experiment || IncludeReasons) ? result.Reason : null));
        }
 private void CheckFeatureEvent(LdValue t, FeatureRequestEvent fe, IFlagEventProperties flag, bool debug, LdValue userJson, EvaluationReason reason = null)
 {
     Assert.Equal(LdValue.Of(debug ? "debug" : "feature"), t.Get("kind"));
     Assert.Equal(LdValue.Of(fe.CreationDate), t.Get("creationDate"));
     Assert.Equal(LdValue.Of(flag.Key), t.Get("key"));
     Assert.Equal(LdValue.Of(flag.EventVersion), t.Get("version"));
     Assert.Equal(fe.Variation.HasValue ? LdValue.Of(fe.Variation.Value) : LdValue.Null, t.Get("variation"));
     Assert.Equal(fe.Value, t.Get("value"));
     CheckEventUserOrKey(t, fe, userJson);
     Assert.Equal(reason, fe.Reason);
 }
        private void CheckFeatureEvent(JToken t, FeatureRequestEvent fe, IFlagEventProperties flag, bool debug, JToken userJson)
        {
            JObject o = t as JObject;

            Assert.Equal(debug ? "debug" : "feature", (string)o["kind"]);
            Assert.Equal(fe.CreationDate, (long)o["creationDate"]);
            Assert.Equal(flag.Key, (string)o["key"]);
            Assert.Equal(flag.Version, (int)o["version"]);
            if (fe.Variation == null)
            {
                Assert.Null(o["variation"]);
            }
            else
            {
                Assert.Equal(fe.Variation, (int)o["variation"]);
            }
            Assert.Equal(fe.Value, o["value"]);
            CheckEventUserOrKey(o, fe, userJson);
        }
예제 #7
0
 internal FeatureRequestEvent NewPrerequisiteFeatureRequestEvent(IFlagEventProperties prereqFlag, User user,
                                                                 int?variation, JToken value, IFlagEventProperties prereqOf)
 {
     return(new FeatureRequestEvent(GetTimestamp(), prereqFlag.Key, user, variation, value, null,
                                    prereqFlag.Version, prereqOf.Key, prereqFlag.TrackEvents, prereqFlag.DebugEventsUntilDate, false));
 }
예제 #8
0
 internal FeatureRequestEvent NewDefaultFeatureRequestEvent(IFlagEventProperties flag, User user,
                                                            JToken defaultVal)
 {
     return(new FeatureRequestEvent(GetTimestamp(), flag.Key, user, null, defaultVal, defaultVal,
                                    flag.Version, null, flag.TrackEvents, flag.DebugEventsUntilDate, false));
 }