private void CrossJoinData(TInput2 passingRow) { if (!WasInMemoryTableLoaded) { InMemoryTarget.Wait(); WasInMemoryTableLoaded = true; } foreach (TInput1 inMemoryRow in InMemoryData) { try { if (inMemoryRow != null && passingRow != null) { TOutput result = CrossJoinFunc.Invoke(inMemoryRow, passingRow); if (result != null) { Buffer.SendAsync(result).Wait(); LogProgress(); } } } catch (Exception e) { if (!ErrorHandler.HasErrorBuffer) { throw e; } ErrorHandler.Send(e, string.Concat(ErrorHandler.ConvertErrorData <TInput1>(inMemoryRow), " |--| ", ErrorHandler.ConvertErrorData <TInput2>(passingRow))); } } }
private void WriteObject(TInput data) { if (data == null) { return; } try { string line; if (LineSelector != null) { line = LineSelector?.Invoke(data); } else { line = data.ToString(); } StreamWriter.WriteLine(line); } catch (Exception e) { if (!ErrorHandler.HasErrorBuffer) { throw e; } ErrorHandler.Send(e, ErrorHandler.ConvertErrorData(data)); } }
protected override void TryBulkInsertData(TInput[] data) { TryAddDynamicColumnsToTableDef(data); try { TableData.ClearData(); ConvertAndAddRows(data); var sql = new SqlTask(this, $"Execute Bulk insert") { DisableLogging = true, ConnectionManager = BulkInsertConnectionManager }; sql .BulkInsert(TableData, DestinationTableDefinition.Name); BulkInsertConnectionManager.CheckLicenseOrThrow(ProgressCount); } catch (Exception e) { if (!ErrorHandler.HasErrorBuffer) { throw e; } ErrorHandler.Send(e, ErrorHandler.ConvertErrorData <TInput[]>(data)); } }
private Action <TInput> AddLoggingAndErrorHandling(Action <TInput> writeAction) { return(new Action <TInput>( input => { if (ProgressCount == 0) { NLogStart(); } try { if (input != null) { writeAction.Invoke(input); } } catch (Exception e) { if (!ErrorHandler.HasErrorBuffer) { throw e; } ErrorHandler.Send(e, ErrorHandler.ConvertErrorData <TInput>(input)); } LogProgress(); })); }
private int SetupArrayFillAction(SqlTask sqlT, int index) { int currentIndexAvoidingClosure = index; sqlT.Actions.Add(col => { try { if (_row != null) { var ar = _row as System.Array; var con = Convert.ChangeType(col, typeof(TOutput).GetElementType()); ar.SetValue(con, currentIndexAvoidingClosure); } } catch (Exception e) { if (!ErrorHandler.HasErrorBuffer) { throw e; } _row = default(TOutput); ErrorHandler.Send(e, ErrorHandler.ConvertErrorData <TOutput>(_row)); } }); index++; return(index); }
private void SetupObjectFillAction(SqlTask sqlT, string colName) { sqlT.Actions.Add(colValue => { try { if (_row != null) { var propInfo = TypeInfo.GetInfoByPropertyNameOrColumnMapping(colName); //var con = colValue != null ? Convert.ChangeType(colValue, TypeInfo.UnderlyingPropType[propInfo]) : colValue; //propInfo.TrySetValue(_row, con); Object con = null; if (colValue != null) { if (TypeInfo.UnderlyingPropType[propInfo].IsEnum) { con = colValue; } else { con = Convert.ChangeType(colValue, TypeInfo.UnderlyingPropType[propInfo]); } } propInfo.TrySetValue(_row, con, TypeInfo.UnderlyingPropType[propInfo]); } } catch (Exception e) { if (!ErrorHandler.HasErrorBuffer) { throw e; } _row = default(TOutput); ErrorHandler.Send(e, ErrorHandler.ConvertErrorData <TOutput>(_row)); } }); }
private void SetupDynamicObjectFillAction(SqlTask sqlT, string colName) { sqlT.Actions.Add(colValue => { try { if (_row != null) { dynamic r = _row as ExpandoObject; ((IDictionary <String, Object>)r).Add(colName, colValue); } } catch (Exception e) { if (!ErrorHandler.HasErrorBuffer) { throw e; } _row = default(TOutput); ErrorHandler.Send(e, ErrorHandler.ConvertErrorData <TOutput>(_row)); } }); }