Example #1
0
        public static Task <PolicyResult <TResult> > RaiseResultSequenceOnExecuteAndCaptureAsync <TResult>(this ContextualPolicy <TResult> policy, IDictionary <string, object> contextData, IEnumerable <TResult> resultsToRaise)
        {
            var enumerator = resultsToRaise.GetEnumerator();

            return(policy.ExecuteAndCaptureAsync(() =>
            {
                if (!enumerator.MoveNext())
                {
                    throw new ArgumentOutOfRangeException("resultsToRaise", "Not enough TResult values in resultsToRaise.");
                }

                return Task.FromResult(enumerator.Current);
            }, contextData));
        }