diff --git a/Config/Config.csproj b/Config/Config.csproj
index 4fc3c9933..3981b9192 100644
--- a/Config/Config.csproj
+++ b/Config/Config.csproj
@@ -39,6 +39,9 @@
..\packages\Iesi.Collections.3.2.0.4000\lib\Net35\Iesi.Collections.dll
+
+ ..\packages\log4net.2.0.2\lib\net40-full\log4net.dll
+
..\packages\MySql.Data.6.6.5\lib\net20\MySql.Data.dll
diff --git a/Config/Entities/Test.cs b/Config/Entities/Test.cs
index 5a1c705cb..033e21ad4 100644
--- a/Config/Entities/Test.cs
+++ b/Config/Entities/Test.cs
@@ -17,6 +17,8 @@ namespace Config.Entities
public virtual string Name { get; set; }
public virtual int Part { get; set; } /// Part=0 ... test of all WM-s
/// Part>0 ... part of a set of tests with the same Name: subset of WM-s is given by MetersPath
+ public virtual bool Publish { get; set; }
+ public virtual bool Evaluate { get; set; }
public virtual float Qfrom { get; set; } /// Water flow low limit in [m3/h]
public virtual float Qto { get; set; } /// Water flow high limit in [m3/h]
public virtual float Volume { get; set; } /// Test volume (target) in [l]
@@ -57,6 +59,8 @@ namespace Config.Entities
///
/// Default values
///
+ Publish = true;
+ Evaluate = true;
Repeats = 1;
Emptying = false;
Zeroing = false;
@@ -85,6 +89,8 @@ namespace Config.Entities
Test result = new Test(Name, ItemNr, Procedure);
result.Part = Part;
+ result.Publish = Publish;
+ result.Evaluate = Evaluate;
result.Qfrom = Qfrom;
result.Qto = Qto;
result.Volume = Volume;
diff --git a/Config/Mappings/TestMap.cs b/Config/Mappings/TestMap.cs
index 87cedb80f..439fb8f92 100644
--- a/Config/Mappings/TestMap.cs
+++ b/Config/Mappings/TestMap.cs
@@ -15,6 +15,8 @@ namespace Config.Mappings
Map(x => x.ItemNr);
Map(x => x.Name);
Map(x => x.Part);
+ Map(x => x.Publish);
+ Map(x => x.Evaluate);
Map(x => x.Qfrom);
Map(x => x.Qto);
Map(x => x.Volume);
diff --git a/Results/DB.cs b/Results/DB.cs
index d9339eadc..a9f63e1ea 100644
--- a/Results/DB.cs
+++ b/Results/DB.cs
@@ -2,8 +2,10 @@
/// Copyright (c) 2013-2015 Sensus Metering Systems
///
using System;
+using System.Collections.Generic;
using FluentNHibernate.Cfg;
using FluentNHibernate.Cfg.Db;
+using log4net;
using NHibernate;
using NHibernate.Cfg;
using NHibernate.Tool.hbm2ddl;
@@ -12,6 +14,8 @@ namespace Results
{
public static class DB
{
+ static readonly ILog log = LogManager.GetLogger(typeof(DB));
+
/// Session factory for all regular sessions, not for CreateEmptyResultsDB().
public static ISessionFactory SessionFactory;
@@ -62,7 +66,7 @@ namespace Results
break;
}
- cfg = cfg.Mappings(m => m.FluentMappings.AddFromAssemblyOf());
+ cfg = cfg.Mappings(m => m.FluentMappings.AddFromAssemblyOf());
if (createDB)
{
@@ -154,5 +158,27 @@ namespace Results
return true;
}
- }
+
+
+ ///
+ /// Shared data
+ ///
+ public static IList TestDataList;
+ public static IList ComponentsList;
+ public static IList WaterMeterDataList;
+
+
+ ///
+ /// Loads shared data from the database
+ ///
+ /// Throws NHibernate exceptions
+ public static void LoadSharedData()
+ {
+ ISession session = DB.CreateSession();
+
+ TestDataList = session.CreateQuery("FROM TestData").List();
+ ComponentsList = session.CreateQuery("FROM Components").List();
+ WaterMeterDataList = session.CreateQuery("FROM WaterMeterData").List();
+ }
+ }
}
diff --git a/Results/Data.cs b/Results/Data.cs
new file mode 100644
index 000000000..aaa1a26ee
--- /dev/null
+++ b/Results/Data.cs
@@ -0,0 +1,98 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using Results.Entities;
+
+namespace Results
+{
+ public class Data
+ {
+ public int WMPositionsCount;
+
+ public Batch Batch;
+ public IList TestRslts;
+ public IList MeterTestRslts;
+
+ public WaterMeter[] WaterMeters;
+
+ public IDictionary TestRsltsMap;
+ public IDictionary MeterTestRsltsMap;
+
+ public Data()
+ {
+ TestRsltsMap = new Dictionary();
+ MeterTestRsltsMap = new Dictionary();
+ }
+
+ public static Data NewFromProcedure(Config.Entities.Procedure procedure,
+ WaterMeterData[] waterMeterDatas,
+ int batchNr,
+ int benchId,
+ string programVer,
+ string user)
+ {
+ Data d = new Data();
+
+ d.WMPositionsCount = waterMeterDatas.Length;
+ d.Batch = new Batch()
+ {
+ BenchId = benchId,
+ BatchNr = batchNr,
+ ProgramVersion = programVer,
+ UserName = user,
+ ProcedureName = procedure.Name,
+ ProcedureRevision = procedure.Revision,
+ StartTime = DateTime.Now
+ };
+ foreach (var t in procedure.Tests)
+ {
+ }
+
+ d.WaterMeters = new WaterMeter[d.WMPositionsCount];
+ for (int i = 0; i < d.WMPositionsCount; i++)
+ {
+ if (waterMeterDatas[i] != null)
+ {
+ d.WaterMeters[i] = new WaterMeter(d.Batch, waterMeterDatas[i]);
+ }
+ }
+
+ foreach (var t in procedure.Tests)
+ {
+ if (t.Publish)
+ {
+ d.Batch.Tests.Add(new TestData(t));
+
+ for (int i = 0; i < d.WMPositionsCount; i++)
+ {
+ if (d.WaterMeters[i] != null)
+ {
+ if (procedure.MetersKind == Config.Entities.MetersKind.Single)
+ {
+ //d.WaterMeters[i].MeterTestRslts.Add(
+ }
+ //else
+ //{
+ //}
+ }
+ }
+ }
+ }
+ return d;
+ }
+
+ ///
+ /// Adds non-null water meters from the array to a Batch water meters list.
+ /// This method should be used when results are prepared and
+ /// all disabled water meters are deleted.
+ ///
+ public void AddWaterMetersToBatch()
+ {
+ for (int i = 0; i < WMPositionsCount; i++)
+ {
+ if (WaterMeters[i] != null) Batch.WaterMeters.Add(WaterMeters[i]);
+ }
+ }
+ }
+}
diff --git a/Results/DataDeposit.cs b/Results/DataDeposit.cs
deleted file mode 100644
index a24660188..000000000
--- a/Results/DataDeposit.cs
+++ /dev/null
@@ -1,11 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-
-namespace Results
-{
- public class DataDeposit
- {
- }
-}
diff --git a/Results/Entities/TestData.cs b/Results/Entities/TestData.cs
index 6e15c55c3..08ca0005d 100644
--- a/Results/Entities/TestData.cs
+++ b/Results/Entities/TestData.cs
@@ -31,7 +31,7 @@ namespace Results.Entities
Method = string.Empty;
}
- public TestData(Config.Entities.Test test, bool evaluate)
+ public TestData(Config.Entities.Test test)
: this()
{
Name = test.Name;
@@ -44,7 +44,7 @@ namespace Results.Entities
ErrLimLo = (double)test.ErrLimLo;
ErrLimHi = (double)test.ErrLimHi;
Uncertainty = (double)test.Uncertainty;
- Evaluate = evaluate;
+ Evaluate = test.Evaluate;
}
public virtual bool Equals(TestData td)
diff --git a/Results/Entities/WaterMeter.cs b/Results/Entities/WaterMeter.cs
index a9810771e..f12556896 100644
--- a/Results/Entities/WaterMeter.cs
+++ b/Results/Entities/WaterMeter.cs
@@ -77,10 +77,11 @@ namespace Results.Entities
///
/// Constructor used to construct WaterMeterResults from the first meter test result
///
- public WaterMeter(MeterTestResult meterTestResult, int benchId)
+ public WaterMeter(Batch batch, WaterMeterData waterMeterData)
: this()
{
- /// TODO
+ Batch = batch;
+ WaterMeterData = waterMeterData;
}
///
diff --git a/Results/Results.csproj b/Results/Results.csproj
index ee2d9a9ab..1620303a6 100644
--- a/Results/Results.csproj
+++ b/Results/Results.csproj
@@ -38,6 +38,9 @@
..\packages\Iesi.Collections.3.2.0.4000\lib\Net35\Iesi.Collections.dll
+
+ ..\packages\log4net.2.0.2\lib\net40-full\log4net.dll
+
..\packages\MySql.Data.6.6.5\lib\net20\MySql.Data.dll
@@ -53,7 +56,7 @@
-
+
diff --git a/ResultsBrowser/DataDeposit.cs b/ResultsBrowser/DataDeposit.cs
index d7c83ca59..cbe8c2249 100644
--- a/ResultsBrowser/DataDeposit.cs
+++ b/ResultsBrowser/DataDeposit.cs
@@ -71,7 +71,7 @@ namespace ResultsBrowser
{
if (!waterMetersCreated)
{
- foreach (var mtr in tr.Meters) wmResults.Add(new Results.Entities.WaterMeter(mtr, 5));
+ //foreach (var mtr in tr.Meters) wmResults.Add(new Results.Entities.WaterMeter(mtr, 5));
waterMetersCreated = true;
}
else
diff --git a/TestBenchFramework/ProcedureDlg.cs b/TestBenchFramework/ProcedureDlg.cs
index c9b71f019..7d1aeb133 100644
--- a/TestBenchFramework/ProcedureDlg.cs
+++ b/TestBenchFramework/ProcedureDlg.cs
@@ -520,7 +520,10 @@ namespace TBF
Qto,
ErrLimLo,
ErrLimHi,
+ Uncertainty,
Filter,
+ Publish,
+ Evaluate,
Mtrlgy2ClmnCount
}
@@ -534,11 +537,22 @@ namespace TBF
metrology2ListViewEx.Columns.Add(new ColumnHeader { Text = Strings.Q_to_m3h, Width = 80 });
metrology2ListViewEx.Columns.Add(new ColumnHeader { Text = Strings.Err_limit_neg_pct_chdr, Width = 100 });
metrology2ListViewEx.Columns.Add(new ColumnHeader { Text = Strings.Err_limit_pos_pct_chdr, Width = 100 });
+ metrology2ListViewEx.Columns.Add(new ColumnHeader { Text = Strings.Uncertainty_pct_chdr, Width = 100 });
metrology2ListViewEx.Columns.Add(new ColumnHeader { Text = "Filter", Width = 80 }); /// Strings.Tol_red_pct_chdr
+ metrology2ListViewEx.Columns.Add(new ColumnHeader { Text = Strings.Publish, Width = 80 });
+ metrology2ListViewEx.Columns.Add(new ColumnHeader { Text = Strings.Evaluate, Width = 80 });
//metrology2ListViewEx.Columns.Add(new ColumnHeader { Text = Strings.Red_type_chdr, Width = 80 });
//metrology2ListViewEx.Columns.Add(new ColumnHeader { Text = Strings.Err_cor_neg_pct_chdr, Width = 90 });
//metrology2ListViewEx.Columns.Add(new ColumnHeader { Text = Strings.Err_cor_pos_pct_chdr, Width = 90 });
+ ComboBox yesNo1CBox = new ComboBox(); /// control for Publish
+ yesNo1CBox.Items.Add(Strings.yes);
+ yesNo1CBox.Items.Add(Strings.no);
+
+ ComboBox yesNo2CBox = new ComboBox(); /// control for Evaluate
+ yesNo2CBox.Items.Add(Strings.yes);
+ yesNo2CBox.Items.Add(Strings.no);
+
metrology2Editors = new Control[]
{
new TextBox(), /// Name
@@ -547,7 +561,10 @@ namespace TBF
new TextBox(), /// Qto
new TextBox(), /// Err.Lim. -
new TextBox(), /// Err.Lim. +
+ new TextBox(), /// Uncertainty
new TextBox(), /// Filter
+ yesNo1CBox, /// Publish
+ yesNo2CBox, /// Evaluate
};
foreach (var ctrl in metrology2Editors)
@@ -730,8 +747,10 @@ namespace TBF
///
lviMetrlg2.SubItems.Add(test.ErrLimLo.ToString());
lviMetrlg2.SubItems.Add(test.ErrLimHi.ToString());
- lviMetrlg2.SubItems.Add(test.TolerRed.ToString());
- lviMetrlg2.SubItems.Add(test.RedType.ToString());
+ lviMetrlg2.SubItems.Add(test.Uncertainty.ToString());
+ lviMetrlg2.SubItems.Add(test.TolerRed.ToString());
+ lviMetrlg2.SubItems.Add(test.Publish ? Strings.yes : Strings.no);
+ lviMetrlg2.SubItems.Add(test.Evaluate ? Strings.yes : Strings.no);
metrology2ListViewEx.Items.Add(lviMetrlg2);
@@ -818,8 +837,15 @@ namespace TBF
float tmp;
if (Utils.TryParseSFloat(lvi.SubItems[(int)Mtrlgy2Clmn.ErrLimLo].Text, out tmp)) entity.ErrLimLo = tmp;
if (Utils.TryParseSFloat(lvi.SubItems[(int)Mtrlgy2Clmn.ErrLimHi].Text, out tmp)) entity.ErrLimHi = tmp;
- if (Utils.TryParseUFloat(lvi.SubItems[(int)Mtrlgy2Clmn.Filter].Text, out tmp)) entity.TolerRed = (double)tmp;
- }
+ if (Utils.TryParseUFloat(lvi.SubItems[(int)Mtrlgy2Clmn.Uncertainty].Text, out tmp)) entity.Uncertainty = tmp;
+ if (Utils.TryParseUFloat(lvi.SubItems[(int)Mtrlgy2Clmn.Filter].Text, out tmp)) entity.TolerRed = (double)tmp;
+
+ if (lvi.SubItems[(int)Mtrlgy2Clmn.Publish].Text.Equals(Strings.yes)) entity.Publish = true;
+ else if (lvi.SubItems[(int)Mtrlgy2Clmn.Publish].Text.Equals(Strings.no)) entity.Publish = false;
+
+ if (lvi.SubItems[(int)Mtrlgy2Clmn.Evaluate].Text.Equals(Strings.yes)) entity.Evaluate = true;
+ else if (lvi.SubItems[(int)Mtrlgy2Clmn.Evaluate].Text.Equals(Strings.no)) entity.Evaluate = false;
+ }
}
void UpdateFromProcessTab()
diff --git a/TestBenchFramework/Program.cs b/TestBenchFramework/Program.cs
index 5569100b8..1e295ff58 100644
--- a/TestBenchFramework/Program.cs
+++ b/TestBenchFramework/Program.cs
@@ -227,6 +227,7 @@ namespace TBF
Results.DB.DbType = Config.Data.CurrentBench.WaterMetersDBSettings.DbType;
Results.DB.ConnectionString = Config.Data.CurrentBench.WaterMetersDBSettings.ConnectionString;
+ Results.DB.LoadSharedData();
retryLogin = false;
break;
diff --git a/TestBenchFramework/Resources/Strings.Designer.cs b/TestBenchFramework/Resources/Strings.Designer.cs
index bae79ee3f..a29c2058b 100644
--- a/TestBenchFramework/Resources/Strings.Designer.cs
+++ b/TestBenchFramework/Resources/Strings.Designer.cs
@@ -2952,6 +2952,15 @@ namespace TBF.Resources {
}
}
+ ///
+ /// Looks up a localized string similar to Uncertainty [%].
+ ///
+ internal static string Uncertainty_pct_chdr {
+ get {
+ return ResourceManager.GetString("Uncertainty_pct_chdr", resourceCulture);
+ }
+ }
+
///
/// Looks up a localized string similar to Unhandled error occured in .
///
diff --git a/TestBenchFramework/Resources/Strings.de.resx b/TestBenchFramework/Resources/Strings.de.resx
index 4a7764f56..3bddb0f44 100644
--- a/TestBenchFramework/Resources/Strings.de.resx
+++ b/TestBenchFramework/Resources/Strings.de.resx
@@ -999,4 +999,7 @@
Prüfung {0} bearbeitet
+
+ Unsicherheit [%]
+
\ No newline at end of file
diff --git a/TestBenchFramework/Resources/Strings.resx b/TestBenchFramework/Resources/Strings.resx
index b432172f7..c1eef19a3 100644
--- a/TestBenchFramework/Resources/Strings.resx
+++ b/TestBenchFramework/Resources/Strings.resx
@@ -1165,4 +1165,7 @@
Results
+
+ Uncertainty [%]
+
\ No newline at end of file