@@ -244,8 +244,11 @@ public EvalDetail<string>[] GetAllVariations(FbUser user)
244
244
{
245
245
var results = _store
246
246
. Find < FeatureFlag > ( x => x . StoreKey . StartsWith ( StoreKeys . FlagPrefix ) )
247
- . Select ( flag => _evaluator . Evaluate ( flag , user ) . evalResult )
248
- . Select ( x => new EvalDetail < string > ( x . Kind , x . Reason , x . Value ) )
247
+ . Select ( flag =>
248
+ {
249
+ var evalResult = _evaluator . Evaluate ( flag , user ) . evalResult ;
250
+ return new EvalDetail < string > ( flag . Key , evalResult . Kind , evalResult . Reason , evalResult . Value ) ;
251
+ } )
249
252
. ToArray ( ) ;
250
253
251
254
return results ;
@@ -285,7 +288,7 @@ private EvalDetail<TValue> EvaluateCore<TValue>(
285
288
if ( ! Initialized )
286
289
{
287
290
// Flag evaluation before client initialized; always returning default value
288
- return new EvalDetail < TValue > ( ReasonKind . ClientNotReady , "client not ready" , defaultValue ) ;
291
+ return new EvalDetail < TValue > ( key , ReasonKind . ClientNotReady , "client not ready" , defaultValue ) ;
289
292
}
290
293
291
294
var ctx = new EvaluationContext
@@ -298,16 +301,16 @@ private EvalDetail<TValue> EvaluateCore<TValue>(
298
301
if ( evalResult . Kind == ReasonKind . Error )
299
302
{
300
303
// error happened when evaluate flag, return default value
301
- return new EvalDetail < TValue > ( evalResult . Kind , evalResult . Reason , defaultValue ) ;
304
+ return new EvalDetail < TValue > ( key , evalResult . Kind , evalResult . Reason , defaultValue ) ;
302
305
}
303
306
304
307
// record evaluation event
305
308
_eventProcessor . Record ( evalEvent ) ;
306
309
307
310
return converter ( evalResult . Value , out var typedValue )
308
- ? new EvalDetail < TValue > ( evalResult . Kind , evalResult . Reason , typedValue )
311
+ ? new EvalDetail < TValue > ( key , evalResult . Kind , evalResult . Reason , typedValue )
309
312
// type mismatch, return default value
310
- : new EvalDetail < TValue > ( ReasonKind . WrongType , "type mismatch" , defaultValue ) ;
313
+ : new EvalDetail < TValue > ( key , ReasonKind . WrongType , "type mismatch" , defaultValue ) ;
311
314
}
312
315
}
313
316
}
0 commit comments