diff --git a/SCIStorePlugin/Attachers/SciStoreAttacher.cs b/SCIStorePlugin/Attachers/SciStoreAttacher.cs
index e0176cc..f5aeca3 100644
--- a/SCIStorePlugin/Attachers/SciStoreAttacher.cs
+++ b/SCIStorePlugin/Attachers/SciStoreAttacher.cs
@@ -20,7 +20,7 @@ namespace SCIStorePlugin.Attachers;
[Description(@"Populates the RAW database from XML files retrieved from the SCI Store web service in the ForLoading directory")]
public class SciStoreAttacher : Attacher
{
- public string HeaderTable ="Header";
+ public string HeaderTable = "Header";
public string SamplesTable = "SampleDetails";
public string ResultsTable = "Results";
private Stopwatch _timer;
@@ -31,7 +31,7 @@ public class SciStoreAttacher : Attacher
[DemandsInitialization(@"Determines behaviour when bad reports are encountered e.g. LabNumbers like 000000000.
True - Report warning and continue (not loading file)
-False - Stop the data load with an error",DefaultValue = true)]
+False - Stop the data load with an error", DefaultValue = true)]
public bool IgnoreBadData { get; set; }
public SciStoreAttacher()
@@ -45,7 +45,7 @@ public SciStoreAttacher()
///
///
///
- public override ExitCodeType Attach(IDataLoadJob job,GracefulCancellationToken token)
+ public override ExitCodeType Attach(IDataLoadJob job, GracefulCancellationToken token)
{
// Create the DataTable repository into which the XML files will be loaded into prior to their bulk insert into RAW
var dataTableSchemaSource = new DataTableSchemaFromDatabase(_dbInfo);
@@ -78,7 +78,7 @@ public override ExitCodeType Attach(IDataLoadJob job,GracefulCancellationToken t
{
labs = reports
.Select(report => reportFactory.Create(report, job))
- .Where(r=>r != null) //bad reports are null
+ .Where(r => r != null) //bad reports are null
.ToList();
}
catch (BadCombinedReportDataException e)
@@ -133,7 +133,21 @@ private void BulkInsertDataTable(DataTable dataTable, IDataLoadJob job)
var tbl = _dbInfo.ExpectTable(dataTable.TableName);
using var blk = tbl.BeginBulkInsert();
- blk.Upload(dataTable);
+ foreach (var row in dataTable.Rows)
+ {
+ try
+ {
+ var ndt = new DataTable();
+ ndt.Rows.Add(row);
+ blk.Upload(ndt);
+ }
+ catch (Exception e)
+ {
+ job.OnNotify(this, new NotifyEventArgs(ProgressEventType.Warning,
+ $"Skipped a row due to error: {e.Message}", e));
+ }
+ }
+ //blk.Upload(dataTable);
}
public bool SilentRunning { get; set; }
@@ -162,7 +176,7 @@ private void CreateReadCodeConstraint()
};
}
- public override void LoadCompletedSoDispose(ExitCodeType exitCode,IDataLoadEventListener postLoadEventListener)
+ public override void LoadCompletedSoDispose(ExitCodeType exitCode, IDataLoadEventListener postLoadEventListener)
{
}
@@ -172,9 +186,9 @@ private void ResolveTestResultOrderDuplication(List labs, IDataL
{
foreach (var sample in lab.Samples)
{
- var recordsRemoved = sample.ResolveTestResultOrderDuplication();
+ var recordsRemoved = sample.ResolveTestResultOrderDuplication();
if (recordsRemoved > 0)
- job.OnNotify(this,new NotifyEventArgs(ProgressEventType.Warning,
+ job.OnNotify(this, new NotifyEventArgs(ProgressEventType.Warning,
$"Resolved duplicate TestResultOrder using method 'ResolveTestResultOrderDuplication' in lab number:{lab.Header.LabNumber}"));
}
}
diff --git a/SharedAssemblyInfo.cs b/SharedAssemblyInfo.cs
index 2e3a57a..4ca12b0 100644
--- a/SharedAssemblyInfo.cs
+++ b/SharedAssemblyInfo.cs
@@ -12,4 +12,4 @@
// These should be overwritten by release builds
[assembly: AssemblyVersion("6.1.6")]
[assembly: AssemblyFileVersion("6.1.6")]
-[assembly: AssemblyInformationalVersion("6.1.6")]
+[assembly: AssemblyInformationalVersion("6.1.7-doug-special")]