public override void OnExecute(EtlPipelineContext context) { using (var input1Enumerator = Input.GetEnumerator()) using (var input2Enumerator = Input2.GetEnumerator()) { var input1HasItems = input1Enumerator.MoveNext(); var input2HasItems = input2Enumerator.MoveNext(); while (input1HasItems && input2HasItems) { Emit(input1Enumerator.Current); input1HasItems = input1Enumerator.MoveNext(); Emit(input2Enumerator.Current); input2HasItems = input2Enumerator.MoveNext(); } while (input1HasItems) { Emit(input1Enumerator.Current); input1HasItems = input1Enumerator.MoveNext(); } while (input2HasItems) { Emit(input2Enumerator.Current); input2HasItems = input2Enumerator.MoveNext(); } TypedEmitter.SignalEnd(); } }
public override void OnExecute(EtlPipelineContext context) { foreach (var item in Input) { if (_predicate(item)) { Emit(item); } else { context.ObjectPool.Return(item); } } TypedEmitter.SignalEnd(); }
public override void OnExecute(EtlPipelineContext context) { foreach (var item in Input) { try { Emit(_transform(_stateDictionary, item)); } catch (Exception e) { RaiseError(e, item); } } TypedEmitter.SignalEnd(); }
public override void OnExecute(EtlPipelineContext context) { using (var con = new Npgsql.NpgsqlConnection(_connectionString)) { con.Open(); using (var trx = con.BeginTransaction(_isolationLevel)) using (var cmd = con.CreateCommand()) { cmd.CommandText = _commandText; cmd.CommandType = CommandType.Text; cmd.Transaction = trx; foreach (var param in _parameters) { var p = cmd.CreateParameter(); p.ParameterName = param.Key; p.Value = param.Value; cmd.Parameters.Add(p); } using (var reader = cmd.ExecuteReader(CommandBehavior.CloseConnection)) { if (!reader.HasRows) { return; } while (reader.Read()) { var row = new Row(); for (var i = 0; i < reader.FieldCount; i++) { row[reader.GetName(i)] = reader[i]; } Emit(row); } } } } TypedEmitter.SignalEnd(); }
public override void OnExecute(EtlPipelineContext context) { foreach (var item in Input) { var newItem = context.ObjectPool.Borrow <TOut>(); try { Emit(_mapFn(item, newItem)); context.ObjectPool.Return(item); } catch (Exception ex) { RaiseError(ex, item); context.ObjectPool.Return(newItem); } } TypedEmitter.SignalEnd(); }
public override void OnExecute(EtlPipelineContext context) { foreach (var item in Input) { var newItem = context.ObjectPool.Borrow <T>(); try { item.CopyTo(newItem); var matchedPredicate = false; foreach (var predicate in _classFns) { if (!predicate.Value(item)) { continue; } SetValue(newItem, predicate.Key); matchedPredicate = true; break; } if (!matchedPredicate) { SetValue(newItem, _defaultClass); } Emit(newItem); context.ObjectPool.Return(item); } catch (Exception e) { context.ObjectPool.Return(newItem); RaiseError(e, item); } } TypedEmitter.SignalEnd(); }