Example #1
0
        private static ChainStatus Pipeline <TKey, TElement, TResult>(Grouping <TKey, TElement> lastGrouping, Func <TKey, IEnumerable <TElement>, TResult> resultSelector, Chain <TResult> chain)
        {
            var state = ChainStatus.Flow;
            Grouping <TKey, TElement> g = lastGrouping;

            if (g != null)
            {
                do
                {
                    g     = g._next;
                    state = chain.ProcessNext(resultSelector(g.Key, g.GetEfficientList(true)));
                    if (state.IsStopped())
                    {
                        break;
                    }
                }while (g != lastGrouping);
            }
            return(state);
        }