/// <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); }
/// <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)); }
/// <summary> /// Join operation constructor /// </summary> /// <param name="activator">Join operation activator</param> public JoinOperation(JoinActivator <T> activator) => _activator = activator;