/// <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)); }