internal FlagEventPropertiesBuilder(IFlagEventProperties from) { _key = from.Key; _version = from.Version; _trackEvents = from.TrackEvents; _debugEventsUntilDate = from.DebugEventsUntilDate; }
/// <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)); }
/// <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)); }
/// <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); }
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)); }
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)); }