コード例 #1
0
ファイル: DumpExtensions.cs プロジェクト: kishoredbn/svcperf
        /// <summary>
        /// Enumerble collections should have playback run already and hence we only call onNext.
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="result"></param>
        public static void Dump <T>(this IEnumerable <T> result)
        {
            QueryExecutionContext context = QueryExecutionContext.Current;
            Action <object>       onNext;
            Action <Exception>    onError;
            Action onComplete;

            context.OnDumpStart(typeof(T), result,
                                out onNext,
                                out onComplete,
                                out onError);

            try
            {
                if (onNext != null)
                {
                    foreach (var item in result)
                    {
                        onNext(item);
                    }
                }
            }
            catch (Exception ex)
            {
                onError(ex);
            }
            finally
            {
                onComplete();
            }
        }
コード例 #2
0
ファイル: DumpExtensions.cs プロジェクト: kishoredbn/svcperf
        public static void Dump(this IEnumerable <String> result)
        {
            QueryExecutionContext context = QueryExecutionContext.Current;
            Action <object>       onNext;
            Action <Exception>    onError;
            Action onComplete;

            context.OnDumpStart(typeof(StringWrapper), result,
                                out onNext,
                                out onComplete,
                                out onError);

            if (onNext != null)
            {
                try
                {
                    foreach (var item in result)
                    {
                        onNext(new StringWrapper {
                            Value = item
                        });
                    }
                }
                catch (Exception ex)
                {
                    onError(ex);
                }
                finally
                {
                    onComplete();
                }
            }
        }
コード例 #3
0
ファイル: DumpExtensions.cs プロジェクト: kishoredbn/svcperf
        public static void Dump(this SequenceDiagram result)
        {
            QueryExecutionContext context = QueryExecutionContext.Current;
            Action <object>       onNext;
            Action <Exception>    onError;
            Action onComplete;

            context.OnDumpStart(typeof(SequenceDiagram), result,
                                out onNext,
                                out onComplete,
                                out onError);
            try
            {
                if (onNext != null)
                {
                    onNext(result);
                }
            }
            catch (Exception ex)
            {
                onError(ex);
            }
            finally
            {
                onComplete();
            }
        }
コード例 #4
0
ファイル: DumpExtensions.cs プロジェクト: kishoredbn/svcperf
        public static void Dump <T>(this IObservable <IList <T> > result)
        {
            QueryExecutionContext context = QueryExecutionContext.Current;
            Action <object>       onNext;
            Action <Exception>    onError;
            Action onComplete;

            context.OnDumpStart(typeof(T), result,
                                out onNext,
                                out onComplete,
                                out onError);
            try
            {
                if (onNext != null)
                {
                    result
                    .Finally(() =>
                    {
                        onComplete();
                    })
                    .Subscribe(
                        (data) =>
                    {
                        try
                        {
                            foreach (var item in data)
                            {
                                onNext(item);
                            }
                        }
                        catch (Exception ex)
                        {
                            onError(ex);
                            throw;
                        }
                    });
                }
            }
            catch (Exception ex)
            {
                onError(ex);
            }
        }