/// <summary> /// Join an enumeration of elements to the pipeline /// </summary> /// <param name="observed">observed operation</param> /// <param name="rightOp">operation to join</param> /// <param name="field">Name of the field used for the join</param> /// <param name="processrow">callback method called to process the row</param> /// <returns>resulting operation</returns> public static JoinOperation <Row> FullJoin(this IObservableOperation observed, IEnumerable <Row> rightOp, string field, Func <Row, Row, Row> processrow) { return(observed.Join( rightOp, new RowJoinHelper(field).FullJoinMatch, processrow)); }
/// <summary> /// Join an enumeration of elements to the pipeline /// </summary> /// <param name="observed">observed operation</param> /// <param name="rightOp">operation to join</param> /// <param name="leftField">Name of the field used for the join</param> /// <param name="rightField">Name of the field used for the join</param> /// <param name="processrow">callback method called to process the row</param> /// <returns>resulting operation</returns> public static JoinOperation <Row> RightJoin(this IObservableOperation observed, IEnumerable <Row> rightOp, string leftField, string rightField, Func <Row, Row, Row> processrow) { return(observed.Join( rightOp, new RowJoinHelper(leftField, rightField).RightJoinMatch, processrow)); }
/// <summary> /// Join an enumeration of elements to the pipeline /// </summary> /// <param name="observed">observed operation</param> /// <param name="rightOp">operation 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 <Row> Join(this IObservableOperation observed, IObservableOperation rightOp, Func <Row, Row, bool> checkMatch, Func <Row, Row, Row> processrow) { var activator = new OperationJoinActivator(); activator.Operation = rightOp; activator.CheckMatch = checkMatch; activator.ProcessRow = processrow; return(observed.Join(activator)); }
/// <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)); }