예제 #1
0
        /// <summary>
        /// Join an enumeration of elements to the pipeline
        /// </summary>
        /// <typeparam name="T">type of elements to join</typeparam>
        /// <param name="observed">observed operation</param>
        /// <param name="activator">join parameters</param>
        /// <returns>resulting operation</returns>
        public static JoinOperation <T> Join <T>(this IObservableOperation observed, JoinActivator <T> activator)
        {
            var op = new JoinOperation <T>(activator);

            observed.Subscribe(op);
            return(op);
        }
예제 #2
0
        /// <summary>
        /// Join an enumeration of elements to the pipeline
        /// </summary>
        /// <typeparam name="T">type of elements to join</typeparam>
        /// <param name="observed">observed operation</param>
        /// <param name="list">enumeration of elements to join</param>
        /// <param name="checkMatch">callback method to check if an element is matching the row</param>
        /// <param name="processrow">callback method called to process the row</param>
        /// <returns>resulting operation</returns>
        public static JoinOperation <T> Join <T>(this IObservableOperation observed, IEnumerable <T> list, Func <Row, T, bool> checkMatch, Func <Row, T, Row> processrow)
        {
            var activator = new JoinActivator <T>();

            activator.List       = list;
            activator.CheckMatch = checkMatch;
            activator.ProcessRow = processrow;

            return(observed.Join(activator));
        }
예제 #3
0
 /// <summary>
 /// Join operation constructor
 /// </summary>
 /// <param name="activator">Join operation activator</param>
 public JoinOperation(JoinActivator <T> activator) => _activator = activator;