diff --git a/Config/Config.csproj b/Config/Config.csproj
index b2bf1317a..4fc3c9933 100644
--- a/Config/Config.csproj
+++ b/Config/Config.csproj
@@ -63,12 +63,6 @@
-
- Form
-
-
- DatabaseSettingsDlg.cs
-
@@ -121,9 +115,6 @@
-
- DatabaseSettingsDlg.cs
-
Designer
diff --git a/Config/Entities/Enums.cs b/Config/Entities/Enums.cs
index 535545732..771e4411a 100644
--- a/Config/Entities/Enums.cs
+++ b/Config/Entities/Enums.cs
@@ -37,6 +37,14 @@ namespace Config.Entities
Combined,
}
+ public enum CompoundMeterId : byte
+ {
+ Single,
+ CompoundMain,
+ CompoundAux,
+ Compound,
+ }
+
public enum Medium
{
ColdWater,
diff --git a/Results/DB.cs b/Results/DB.cs
index 1ce72ed02..d9339eadc 100644
--- a/Results/DB.cs
+++ b/Results/DB.cs
@@ -138,7 +138,7 @@ namespace Results
/// DBType.SQLite or DBType.MySql
/// Connection string
/// true=success, false=error
- public static bool CreateEmptyResultsDB(Config.Entities.DBType dbType)
+ public static bool CreateEmptyDB()
{
ISessionFactory sessionFactory = CreateSessionFactory(true);
if (sessionFactory == null) return false;
diff --git a/Results/Entities/Batch.cs b/Results/Entities/Batch.cs
index 231c928bc..b8d3de596 100644
--- a/Results/Entities/Batch.cs
+++ b/Results/Entities/Batch.cs
@@ -11,10 +11,17 @@ namespace Results.Entities
public virtual int Id { get; protected set; }
public virtual int BenchId { get; set; }
public virtual int BatchNr { get; set; }
+ public virtual string ProgramVersion { get; set; }
+ public virtual string UserName { get; set; }
public virtual string ProcedureName { get; set; }
public virtual int ProcedureRevision { get; set; }
+ public virtual float Custom1 { get; set; }
+ public virtual float Custom2 { get; set; }
+ public virtual float Custom3 { get; set; }
public virtual DateTime StartTime { get; set; }
public virtual DateTime EndTime { get; set; }
+ public virtual bool RsltsSent { get; set; }
+ public virtual bool RsltsPrinted { get; set; }
public virtual IList Tests { get; set; }
public virtual IList WaterMeters { get; set; }
public virtual IList TestRslts { get; set; }
diff --git a/Results/Entities/Components.cs b/Results/Entities/Components.cs
new file mode 100644
index 000000000..f999bc203
--- /dev/null
+++ b/Results/Entities/Components.cs
@@ -0,0 +1,68 @@
+///
+/// Copyright (c) 2016 Sensus Metering Systems
+///
+using System;
+using System.Collections.Generic;
+
+namespace Results.Entities
+{
+ public class Components
+ {
+ public virtual int Id { get; protected set; }
+ public virtual int BenchId { get; set; }
+ public virtual string BenchName { get; set; }
+ public virtual string Pump { get; set; }
+ public virtual string RegValve { get; set; }
+ public virtual string Flowmeter { get; set; }
+ public virtual string Diverter { get; set; }
+ public virtual string Scale { get; set; }
+ public virtual string Custom1 { get; set; }
+ public virtual string Custom2 { get; set; }
+ public virtual string Custom3 { get; set; }
+
+ protected Components()
+ {
+ BenchId = 0;
+ BenchName = string.Empty;
+ Pump = string.Empty;
+ RegValve = string.Empty;
+ Flowmeter = string.Empty;
+ Diverter = string.Empty;
+ Scale = string.Empty;
+ Custom1 = string.Empty;
+ Custom2 = string.Empty;
+ Custom3 = string.Empty;
+ }
+
+ public Components(int benchId, string benchName, string pump, string flowmeter,
+ string scale, string regValve, string diverter)
+ {
+ BenchId = benchId;
+ BenchName = benchName;
+ Pump = pump;
+ RegValve = regValve;
+ Flowmeter = flowmeter;
+ Diverter = diverter;
+ Scale = scale;
+ Custom1 = string.Empty;
+ Custom2 = string.Empty;
+ Custom3 = string.Empty;
+ }
+
+ public virtual bool Equals(Components bc)
+ {
+ if (BenchId != bc.BenchId) return false;
+ if (!BenchName.Equals(bc.BenchName)) return false;
+ if (!Pump.Equals(bc.Pump)) return false;
+ if (!RegValve.Equals(bc.RegValve)) return false;
+ if (!Flowmeter.Equals(bc.Flowmeter)) return false;
+ if (!Diverter.Equals(bc.Diverter)) return false;
+ if (!Scale.Equals(bc.Scale)) return false;
+ if (!Custom1.Equals(bc.Custom1)) return false;
+ if (!Custom2.Equals(bc.Custom2)) return false;
+ if (!Custom3.Equals(bc.Custom3)) return false;
+
+ return true;
+ }
+ }
+}
diff --git a/Results/Entities/MeterTestRslt.cs b/Results/Entities/MeterTestRslt.cs
index 548055875..15a602c60 100644
--- a/Results/Entities/MeterTestRslt.cs
+++ b/Results/Entities/MeterTestRslt.cs
@@ -1,5 +1,5 @@
///
-/// Copyright (c) 2013-2015 Sensus Metering Systems
+/// Copyright (c) 2013-2016 Sensus Metering Systems
///
using System;
@@ -9,47 +9,46 @@ namespace Results.Entities
{
public virtual int Id { get; protected set; }
- public virtual double PulsesMeter { get; set; } /// # of pulses
- public virtual double PulsesMaster { get; set; }
- public virtual double VolumeStart { get; set; } /// liter
- public virtual double VolumeEnd { get; set; } /// liter
- public virtual double VolumeMeter { get; set; } /// liter
- public virtual double VolumeRef { get; set; } /// liter
- public virtual double TimestampStart { get; set; } /// sec.
- public virtual double TimestampEnd { get; set; } /// sec.
- public virtual double TestTime { get; set; } /// sec.
- public virtual double Error { get; set; } /// %
- public virtual bool Passed { get; set; } /// true=test passed - Not mapped to DB !!!
+ public virtual byte CompoundMeterId { get; set; } /// 0=single, 1=compound/main, 2=compound/aux., 3=compound/overal
+ public virtual double PulsesMeter { get; set; } /// # of pulses
+ public virtual double PulsesMaster { get; set; }
+ public virtual double VolumeStart { get; set; } /// liter
+ public virtual double VolumeEnd { get; set; } /// liter
+ public virtual double VolumeMeter { get; set; } /// liter
+ public virtual double VolumeRef { get; set; } /// liter
+ public virtual double TimestampStart { get; set; } /// sec.
+ public virtual double TimestampEnd { get; set; } /// sec.
+ public virtual double TestTime { get; set; } /// sec.
+ public virtual double Error { get; set; } /// %
+ public virtual bool Passed { get; set; } /// true=test passed - Not mapped to DB !!!
- public virtual WaterMeter WaterMeter { get; set; } /// reference to the TestData entity
- public virtual TestRslt TestRslt { get; set; } /// reference to the TestData entity
+ public virtual WaterMeter WaterMeter { get; set; } /// reference to the TestData entity
+ public virtual TestRslt TestRslt { get; set; } /// reference to the TestData entity
/// Wrappers
- public string Name() { return TestRslt.Name(); }
- public DateTime StartTime() { return TestRslt.StartTime; }
- public DateTime EndTime() { return TestRslt.EndTime; }
- public double FlowSetTime() { return TestRslt.FlowSetTime; }
- public double FlowMass() { return TestRslt.FlowMass; }
- public double FlowCTV() { return TestRslt.FlowCTV; }
- public double FlowMin() { return TestRslt.FlowMin; }
- public double FlowMax() { return TestRslt.FlowMax; }
- public double ErrorMaster() { return TestRslt.ErrorMaster; }
+ public virtual string Name() { return TestRslt.Name(); }
+ public virtual DateTime StartTime() { return TestRslt.StartTime; }
+ public virtual DateTime EndTime() { return TestRslt.EndTime; }
+ public virtual double FlowSetTime() { return TestRslt.FlowSetTime; }
+ public virtual double FlowMass() { return TestRslt.FlowMass; }
+ public virtual double FlowCTV() { return TestRslt.FlowCTV; }
+ public virtual double ErrorMaster() { return TestRslt.ErrorMaster; }
+ public virtual Components Components(){ return TestRslt.Components; }
///
- private TestData TestData() { return TestRslt.TestData; }
+ protected virtual TestData TestData() { return TestRslt.TestData; }
///
- public double Qfrom() { return TestData().Qfrom; }
- public double Qto() { return TestData().Qto; }
- public double TargetVolume() { return TestData().TargetVolume; }
- public double TargetTime() { return TestData().TargetTime; }
- public int Repeats() { return TestData().Repeats; }
- public string Method() { return TestData().Method; }
- public double ErrLimLo() { return TestData().ErrLimLo; }
- public double ErrLimHi() { return TestData().ErrLimHi; }
- public double Uncertainty() { return TestData().Uncertainty; }
- public string Components() { return TestData().Components; }
+ public virtual int Repeats() { return TestData().Repeats; }
+ public virtual double Qfrom() { return TestData().Qfrom; }
+ public virtual double Qto() { return TestData().Qto; }
+ public virtual double TargetVolume() { return TestData().TargetVolume; }
+ public virtual double TargetTime() { return TestData().TargetTime; }
+ public virtual string Method() { return TestData().Method; }
+ public virtual double ErrLimLo() { return TestData().ErrLimLo; }
+ public virtual double ErrLimHi() { return TestData().ErrLimHi; }
+ public virtual double Uncertainty() { return TestData().Uncertainty; }
- private MeterTestRslt()
+ protected MeterTestRslt()
{
}
diff --git a/Results/Entities/TestData.cs b/Results/Entities/TestData.cs
index 3bb32e0eb..6e15c55c3 100644
--- a/Results/Entities/TestData.cs
+++ b/Results/Entities/TestData.cs
@@ -13,38 +13,55 @@ namespace Results.Entities
{
public virtual int Id { get; protected set; }
public virtual string Name { get; set; }
- public virtual double Qfrom { get; set; } /// [m3/h] flow range low limit
+ public virtual int Repeats { get; set; }
+ public virtual double Qfrom { get; set; } /// [m3/h] flow range low limit
public virtual double Qto { get; set; } /// [m3/h] flow range high limit
public virtual double TargetVolume { get; set; } /// [l] target test volume
public virtual double TargetTime { get; set; } /// [s] target test time
- public virtual int Repeats { get; set; }
public virtual string Method { get; set; }
public virtual double ErrLimLo { get; set; } /// [%] (usually < 0)
public virtual double ErrLimHi { get; set; } /// [%] (usually > 0)
public virtual double Uncertainty { get; set; } /// [%] makes error limits tighter: 0 <= Uncertainty <= abs(ErrLimXx)
- public virtual string Components { get; set; } /// TODO: Representation of components
+ public virtual bool Evaluate { get; set; }
- private TestData()
+ protected TestData()
{
+ Name = string.Empty;
+ Method = string.Empty;
}
- public TestData(Config.Entities.Test test, string components)
+ public TestData(Config.Entities.Test test, bool evaluate)
: this()
{
- Name = test.Name;
- Qfrom = (double)test.Qfrom;
- Qto = (double)test.Qto;
- TargetVolume = test.Volume;
- TargetTime = (double)test.TstTime;
- Repeats = test.Repeats;
- Method = test.Method;
- ErrLimLo = (double)test.ErrLimLo;
- ErrLimHi = (double)test.ErrLimHi;
- Uncertainty = (double)test.Uncertainty;
+ Name = test.Name;
+ Repeats = test.Repeats;
+ Qfrom = (double)test.Qfrom;
+ Qto = (double)test.Qto;
+ TargetVolume = (double)test.Volume;
+ TargetTime = (double)test.TstTime;
+ Method = test.Method;
+ ErrLimLo = (double)test.ErrLimLo;
+ ErrLimHi = (double)test.ErrLimHi;
+ Uncertainty = (double)test.Uncertainty;
+ Evaluate = evaluate;
+ }
- /// TODO:
- Components = components;
+ public virtual bool Equals(TestData td)
+ {
+ if (!Name.Equals(td.Name)) return false;
+ if (Repeats != td.Repeats) return false;
+ if (Qfrom != td.Qfrom) return false;
+ if (Qto != td.Qto) return false;
+ if (TargetVolume != td.TargetVolume) return false;
+ if (TargetTime != td.TargetTime) return false;
+ if (!Method.Equals(td.Method)) return false;
+ if (ErrLimLo != td.ErrLimLo) return false;
+ if (ErrLimHi != td.ErrLimHi) return false;
+ if (Uncertainty != td.Uncertainty) return false;
+ if (Evaluate != td.Evaluate) return false;
+
+ return true;
}
}
}
diff --git a/Results/Entities/TestRslt.cs b/Results/Entities/TestRslt.cs
index d815b5dfe..9e5428791 100644
--- a/Results/Entities/TestRslt.cs
+++ b/Results/Entities/TestRslt.cs
@@ -1,5 +1,5 @@
///
-/// Copyright (c) 2015 Sensus Metering Systems
+/// Copyright (c) 2015-2016 Sensus Metering Systems
///
using System;
using System.Collections.Generic;
@@ -12,14 +12,33 @@ namespace Results.Entities
public virtual int Id { get; protected set; }
public virtual Batch Batch { get; set; }
public virtual TestData TestData { get; set; }
+ public virtual Components Components { get; set; }
public virtual int Part { get; set; }
public virtual int RepetitionNr { get; set; } /// Repetition number from the set of repeated tests (1...)
- /// Results
+ /// Main results
public virtual DateTime StartTime { get; set; } /// Date and time of the test start
public virtual DateTime EndTime { get; set; } /// Date and time of the test end
public virtual double FlowSetTime { get; set; } /// [s] Measurement time in seconds
public virtual double TestTime { get; set; } /// [s] Measurement time in seconds
+ public virtual double PulsesMaster { get; set; }
+ public virtual double ConstMaster { get; set; } /// [pls/l] Pulses per liter master flow meter
+ public virtual double MassStartRaw { get; set; } /// [kg]
+ public virtual double MassStart { get; set; } /// [kg]
+ public virtual double MassEndRaw { get; set; } /// [kg]
+ public virtual double MassEnd { get; set; } /// [kg]
+ public virtual double MassDiff { get; set; } /// [kg]
+ public virtual double DensityIn { get; set; } /// [kg/m3]
+ public virtual double DensityOut { get; set; } /// [kg/m3]
+ public virtual double DensityDiv { get; set; } /// [kg/m3]
+ public virtual double Buoyancy { get; set; }
+ public virtual double FlowMass { get; set; } /// [kg/h] calculated from conventional true value
+ public virtual double FlowCTV { get; set; } ///![m3/h] calculated from conventional true value
+ public virtual double VolumeCTV { get; set; } /// [l] Volume conventional true value
+ public virtual double VolumeMaster { get; set; } /// [l] Volume from the master flow meter
+ public virtual double ErrorMaster { get; set; } /// [%]
+
+ /// Auxiliary results
public virtual float AmbientTempAve { get; set; } /// [deg.C] Average ambient air temperature
public virtual float AmbientPressAve { get; set; } /// Average ambient air pressure
public virtual float AmbientHumiAve { get; set; } /// [%] Average ambient air relative humidity
@@ -48,45 +67,36 @@ namespace Results.Entities
public virtual float TempDivEnd { get; set; } /// [deg.C]
public virtual float TempDivMin { get; set; } /// [deg.C]
public virtual float TempDivMax { get; set; } /// [deg.C]
- public virtual double MassStartRaw { get; set; } /// [kg]
- public virtual double MassStart { get; set; } /// [kg]
- public virtual double MassEndRaw { get; set; } /// [kg]
- public virtual double MassEnd { get; set; } /// [kg]
- public virtual double MassDiff { get; set; } /// [kg]
- public virtual double DensityIn { get; set; } /// [kg/m3]
- public virtual double DensityOut { get; set; } /// [kg/m3]
- public virtual double DensityDiv { get; set; } /// [kg/m3]
- public virtual double Buoyancy { get; set; }
- public virtual double FlowMass { get; set; } /// [kg/h] calculated from conventional true value
- public virtual double FlowCTV { get; set; } /// [l/h] calculated from conventional true value
- public virtual double FlowMin { get; set; } /// [l/h] minimum flow
- public virtual double FlowMax { get; set; } /// [l/h] maximum flow
- public virtual double VolumeCTV { get; set; } /// [l] Volume conventional true value
- public virtual double VolumeMaster { get; set; } /// [l] Volume from the master flow meter
- public virtual double ErrorMaster { get; set; } /// [%]
- public virtual double PulsesMaster { get; set; }
- public virtual double ConstMaster { get; set; } /// [pls/l] Pulses per liter master flow meter
+ public virtual float FlowMin { get; set; } /// [kg/m3] minimum flow
+ public virtual float FlowMax { get; set; } /// [kg/m3] maximum flow
+ public virtual float Custom1 { get; set; }
+ public virtual float Custom2 { get; set; }
+ public virtual float Custom3 { get; set; }
+ public virtual float Custom4 { get; set; }
+ public virtual float Custom5 { get; set; }
+ public virtual float Custom6 { get; set; }
+ public virtual float Custom7 { get; set; }
+ public virtual float Custom8 { get; set; }
/// Wrappers
- public string Name()
+ public virtual string Name()
{
if (TestData.Repeats == 1) { return TestData.Name; }
else { return string.Format("{0} ({1}/{2})", TestData.Name, RepetitionNr, TestData.Repeats); }
}
- public double Qfrom() { return TestData.Qfrom; }
- public double Qto() { return TestData.Qto; }
- public double TargetVolume() { return TestData.TargetVolume; }
- public double TargetTime() { return TestData.TargetTime; }
- public int Repeats() { return TestData.Repeats; }
- public string Method() { return TestData.Method; }
- public double ErrLimLo() { return TestData.ErrLimLo; }
- public double ErrLimHi() { return TestData.ErrLimHi; }
- public double Uncertainty() { return TestData.Uncertainty; }
- public string Components() { return TestData.Components; }
+ public virtual int Repeats() { return TestData.Repeats; }
+ public virtual double Qfrom() { return TestData.Qfrom; }
+ public virtual double Qto() { return TestData.Qto; }
+ public virtual double TargetVolume() { return TestData.TargetVolume; }
+ public virtual double TargetTime() { return TestData.TargetTime; }
+ public virtual string Method() { return TestData.Method; }
+ public virtual double ErrLimLo() { return TestData.ErrLimLo; }
+ public virtual double ErrLimHi() { return TestData.ErrLimHi; }
+ public virtual double Uncertainty() { return TestData.Uncertainty; }
- public TestRslt()
+ protected TestRslt()
{
}
diff --git a/Results/Entities/WaterMeter.cs b/Results/Entities/WaterMeter.cs
index d82f0dd70..a9810771e 100644
--- a/Results/Entities/WaterMeter.cs
+++ b/Results/Entities/WaterMeter.cs
@@ -8,18 +8,20 @@ namespace Results.Entities
{
public class WaterMeter
{
- public virtual int Id { get; protected set; }
- public virtual string SerialNr { get; set; } /// PCB Number for iPerl water meter
- public virtual string PurchaseOrder { get; set; }
- public virtual string EndState { get; set; }
- public virtual double QRise { get; set; } /// [l/h] detected Q_rise of a composed meter
- public virtual double QFall { get; set; } /// [l/h] detected Q_fall of a composed meter
- public virtual int YearOfProduction { get; set; }
- public virtual bool Passed { get; set; }
+ public virtual int Id { get; protected set; }
+ public virtual string SerialNr { get; set; } /// PCB Number for iPerl water meter
+ public virtual string PurchaseOrder { get; set; }
+ public virtual int WMPosition { get; set; }
+ public virtual string EndState { get; set; }
+ public virtual double QRise { get; set; } ///![m3/h] detected Q_rise of a composed meter
+ public virtual double QFall { get; set; } ///![m3/h] detected Q_fall of a composed meter
+ public virtual int YearOfProduction { get; set; }
+ public virtual bool Passed { get; set; }
#if IPERLST
- public virtual int SerialNrEx { get; set; } /// iPerl : This is the serial number assigned later
- public virtual double CalibFactor { get; set; } /// iPerl calibration factor used during the test - Not mapped to DB !!!
- public virtual double Q2Correction { get; set; } /// iPerl Q2 correction used during the test - Not mapped to DB !!!
+ public virtual int SerialNrEx { get; set; } /// iPerl : This is the serial number assigned later
+ public virtual double OrigCalibFactor { get; set; } /// iPerl calibration factor used during the test - Not mapped to DB !!!
+ public virtual double CalibFactor { get; set; } /// iPerl calibration factor used during the test - Not mapped to DB !!!
+ public virtual double Q2Correction { get; set; } /// iPerl Q2 correction used during the test - Not mapped to DB !!!
#endif
public virtual WaterMeterData WaterMeterData { get; set; }
@@ -29,25 +31,25 @@ namespace Results.Entities
///
/// Wrappers
///
- public string ProductName() { return WaterMeterData.ProductName; }
- public string Producer() { return WaterMeterData.Producer; }
- public string MetrologicalClass() { return WaterMeterData.MetrologicalClass; }
- public string ApprovalInfo() { return WaterMeterData.ApprovalInfo; }
- public double Q4_Qmax() { return WaterMeterData.Q4_Qmax; }
- public double Qn() { return WaterMeterData.Qn; }
- public double Q3() { return WaterMeterData.Q3; }
- public double Q2_Qt() { return WaterMeterData.Q2_Qt; }
- public double Q1_Qmin() { return WaterMeterData.Q1_Qmin; }
- public bool Compound() { return WaterMeterData.Compound; }
+ public virtual string ProductName() { return WaterMeterData.ProductName; }
+ public virtual string Producer() { return WaterMeterData.Producer; }
+ public virtual string MetrologicalClass() { return WaterMeterData.MetrologicalClass; }
+ public virtual string ApprovalInfo() { return WaterMeterData.ApprovalInfo; }
+ public virtual double Q4_Qmax() { return WaterMeterData.Q4_Qmax; }
+ public virtual double Qn() { return WaterMeterData.Qn; }
+ public virtual double Q3() { return WaterMeterData.Q3; }
+ public virtual double Q2_Qt() { return WaterMeterData.Q2_Qt; }
+ public virtual double Q1_Qmin() { return WaterMeterData.Q1_Qmin; }
+ public virtual bool Compound() { return WaterMeterData.Compound; }
- public int BatchNr() { return Batch.BatchNr; }
- public int BenchId() { return Batch.BenchId; }
- public string ProcedureName() { return Batch.ProcedureName; }
- public int ProcedureRevision() { return Batch.ProcedureRevision; }
- public DateTime StartTime() { return Batch.StartTime; }
- public DateTime EndTime() { return Batch.EndTime; }
+ public virtual int BatchNr() { return Batch.BatchNr; }
+ public virtual int BenchId() { return Batch.BenchId; }
+ public virtual string ProcedureName() { return Batch.ProcedureName; }
+ public virtual int ProcedureRevision() { return Batch.ProcedureRevision; }
+ public virtual DateTime StartTime() { return Batch.StartTime; }
+ public virtual DateTime EndTime() { return Batch.EndTime; }
- public MeterTestRslt MeterTestRslt(string testName)
+ public virtual MeterTestRslt MeterTestRslt(string testName)
{
foreach (var tr in MeterTestRslts)
{
@@ -56,7 +58,7 @@ namespace Results.Entities
return null;
}
- public TestRslt TestRslt(string testName)
+ public virtual TestRslt TestRslt(string testName)
{
MeterTestRslt mtr = MeterTestRslt(testName);
if (mtr != null) return mtr.TestRslt;
@@ -67,7 +69,7 @@ namespace Results.Entities
///
/// Private constructor, initializes a list, used as a base
///
- private WaterMeter()
+ protected WaterMeter()
{
MeterTestRslts = new List();
}
@@ -84,7 +86,7 @@ namespace Results.Entities
///
/// Function to append result to a list of results and update start/end dates
///
- public void Append(MeterTestResult meterTestResult)
+ public virtual void Append(MeterTestResult meterTestResult)
{
/// TODO
}
diff --git a/Results/Entities/WaterMeterData.cs b/Results/Entities/WaterMeterData.cs
index 43b2a4dc1..f7da3c47e 100644
--- a/Results/Entities/WaterMeterData.cs
+++ b/Results/Entities/WaterMeterData.cs
@@ -18,7 +18,11 @@ namespace Results.Entities
public virtual double Q3 { get; set; } /// [m3/h]
public virtual double Q2_Qt { get; set; } /// [m3/h]
public virtual double Q1_Qmin { get; set; } /// [m3/h]
- public bool Compound { get; set; }
+ public virtual bool Compound { get; set; }
+#if IPERLST
+ public virtual int WMTypeId { get; set; }
+ public virtual int WMTypeRev { get; set; }
+#endif
public WaterMeterData()
{
diff --git a/Results/Mappings/BatchMap.cs b/Results/Mappings/BatchMap.cs
index 9147ca4d8..9cc796f50 100644
--- a/Results/Mappings/BatchMap.cs
+++ b/Results/Mappings/BatchMap.cs
@@ -13,10 +13,17 @@ namespace Results.Mappings
Id(x => x.Id);
Map(x => x.BenchId);
Map(x => x.BatchNr);
+ Map(x => x.ProgramVersion);
+ Map(x => x.UserName);
Map(x => x.ProcedureName);
Map(x => x.ProcedureRevision);
+ Map(x => x.Custom1);
+ Map(x => x.Custom2);
+ Map(x => x.Custom3);
Map(x => x.StartTime);
Map(x => x.EndTime);
+ Map(x => x.RsltsSent);
+ Map(x => x.RsltsPrinted);
HasMany(x => x.Tests)
.Cascade.All();
HasMany(x => x.WaterMeters)
diff --git a/Results/Mappings/ComponentsMap.cs b/Results/Mappings/ComponentsMap.cs
new file mode 100644
index 000000000..c574ad3e5
--- /dev/null
+++ b/Results/Mappings/ComponentsMap.cs
@@ -0,0 +1,26 @@
+///
+/// Copyright (c) 2016 Sensus Metering Systems
+///
+using FluentNHibernate.Mapping;
+using Results.Entities;
+
+namespace Results.Mappings
+{
+ class ComponentsMap : ClassMap
+ {
+ public ComponentsMap()
+ {
+ Id(x => x.Id);
+ Map(x => x.BenchId);
+ Map(x => x.BenchName);
+ Map(x => x.Pump);
+ Map(x => x.RegValve);
+ Map(x => x.Flowmeter);
+ Map(x => x.Diverter);
+ Map(x => x.Scale);
+ Map(x => x.Custom1);
+ Map(x => x.Custom2);
+ Map(x => x.Custom3);
+ }
+ }
+}
diff --git a/Results/Mappings/MeterTestRsltMap.cs b/Results/Mappings/MeterTestRsltMap.cs
index d9b819cb3..cb9cde648 100644
--- a/Results/Mappings/MeterTestRsltMap.cs
+++ b/Results/Mappings/MeterTestRsltMap.cs
@@ -11,6 +11,7 @@ namespace Results.Mappings
public MeterTestRsltMap()
{
Id(x => x.Id);
+ Map(x => x.CompoundMeterId);
Map(x => x.PulsesMeter);
Map(x => x.PulsesMaster);
Map(x => x.VolumeStart);
diff --git a/Results/Mappings/TestDataMap.cs b/Results/Mappings/TestDataMap.cs
index b114ec9e7..08cbd1f5e 100644
--- a/Results/Mappings/TestDataMap.cs
+++ b/Results/Mappings/TestDataMap.cs
@@ -21,7 +21,6 @@ namespace Results.Mappings
Map(x => x.ErrLimLo);
Map(x => x.ErrLimHi);
Map(x => x.Uncertainty);
- Map(x => x.Components);
}
}
}
diff --git a/Results/Mappings/TestRsltMap.cs b/Results/Mappings/TestRsltMap.cs
index 36241044f..62ee358a6 100644
--- a/Results/Mappings/TestRsltMap.cs
+++ b/Results/Mappings/TestRsltMap.cs
@@ -13,12 +13,31 @@ namespace Results.Mappings
Id(x => x.Id);
References(x => x.Batch);
References(x => x.TestData);
+ References(x => x.Components);
Map(x => x.Part);
Map(x => x.RepetitionNr);
+
Map(x => x.StartTime);
Map(x => x.EndTime);
Map(x => x.FlowSetTime);
Map(x => x.TestTime);
+ Map(x => x.PulsesMaster);
+ Map(x => x.ConstMaster);
+ Map(x => x.MassStartRaw);
+ Map(x => x.MassStart);
+ Map(x => x.MassEndRaw);
+ Map(x => x.MassEnd);
+ Map(x => x.MassDiff);
+ Map(x => x.DensityIn);
+ Map(x => x.DensityOut);
+ Map(x => x.DensityDiv);
+ Map(x => x.Buoyancy);
+ Map(x => x.FlowMass);
+ Map(x => x.FlowCTV);
+ Map(x => x.VolumeCTV);
+ Map(x => x.VolumeMaster);
+ Map(x => x.ErrorMaster);
+
Map(x => x.AmbientTempAve);
Map(x => x.AmbientPressAve);
Map(x => x.AmbientHumiAve);
@@ -47,24 +66,17 @@ namespace Results.Mappings
Map(x => x.TempDivEnd);
Map(x => x.TempDivMin);
Map(x => x.TempDivMax);
- Map(x => x.MassStartRaw);
- Map(x => x.MassStart);
- Map(x => x.MassEndRaw);
- Map(x => x.MassEnd);
- Map(x => x.MassDiff);
- Map(x => x.DensityIn);
- Map(x => x.DensityOut);
- Map(x => x.DensityDiv);
- Map(x => x.Buoyancy);
- Map(x => x.FlowMass);
- Map(x => x.FlowCTV);
Map(x => x.FlowMin);
Map(x => x.FlowMax);
- Map(x => x.VolumeCTV);
- Map(x => x.VolumeMaster);
- Map(x => x.ErrorMaster);
- Map(x => x.PulsesMaster);
- Map(x => x.ConstMaster);
+
+ Map(x => x.Custom1);
+ Map(x => x.Custom2);
+ Map(x => x.Custom3);
+ Map(x => x.Custom4);
+ Map(x => x.Custom5);
+ Map(x => x.Custom6);
+ Map(x => x.Custom7);
+ Map(x => x.Custom8);
}
}
}
diff --git a/Results/Mappings/WaterMeterDataMap.cs b/Results/Mappings/WaterMeterDataMap.cs
index b3b4fcc60..41eaa3575 100644
--- a/Results/Mappings/WaterMeterDataMap.cs
+++ b/Results/Mappings/WaterMeterDataMap.cs
@@ -21,6 +21,10 @@ namespace Results.Mappings
Map(x => x.Q2_Qt);
Map(x => x.Q1_Qmin);
Map(x => x.Compound);
+#if IPERLST
+ Map(x => x.WMTypeId);
+ Map(x => x.WMTypeRev);
+#endif
}
}
}
diff --git a/Results/Mappings/WaterMeterMap.cs b/Results/Mappings/WaterMeterMap.cs
index 79eca72b9..8d7376061 100644
--- a/Results/Mappings/WaterMeterMap.cs
+++ b/Results/Mappings/WaterMeterMap.cs
@@ -13,12 +13,15 @@ namespace Results.Mappings
Id(x => x.Id);
Map(x => x.SerialNr);
Map(x => x.PurchaseOrder);
+ Map(x => x.WMPosition);
Map(x => x.EndState);
Map(x => x.QRise);
Map(x => x.QFall);
+ Map(x => x.YearOfProduction);
Map(x => x.Passed);
#if IPERLST
Map(x => x.SerialNrEx);
+ Map(x => x.OrigCalibFactor);
Map(x => x.CalibFactor);
Map(x => x.Q2Correction);
#endif
diff --git a/Results/Results.csproj b/Results/Results.csproj
index 898c778af..ee2d9a9ab 100644
--- a/Results/Results.csproj
+++ b/Results/Results.csproj
@@ -55,6 +55,7 @@
+
@@ -62,6 +63,7 @@
+
diff --git a/ResultsBrowser/BenchesDlg.cs b/ResultsBrowser/BenchesDlg.cs
index e6b8c601d..4b913f8cf 100644
--- a/ResultsBrowser/BenchesDlg.cs
+++ b/ResultsBrowser/BenchesDlg.cs
@@ -51,7 +51,7 @@ namespace ResultsBrowser
private void addButton_Click(object sender, EventArgs e)
{
Config.DatabaseSettings bench = new Config.DatabaseSettings();
- Config.DatabaseSettingsDlg dlg = new Config.DatabaseSettingsDlg(bench);
+ Forms.DatabaseSettingsDlg dlg = new Forms.DatabaseSettingsDlg(bench);
DialogResult dr = dlg.ShowDialog();
if (dr == DialogResult.OK)
{
@@ -91,7 +91,7 @@ namespace ResultsBrowser
Config.DatabaseSettings ori = localSettings.TestBenches[testBenchesListBox.SelectedIndex];
Config.DatabaseSettings bench = (Config.DatabaseSettings)ori.Clone();
- Config.DatabaseSettingsDlg dlg = new Config.DatabaseSettingsDlg(bench);
+ Forms.DatabaseSettingsDlg dlg = new Forms.DatabaseSettingsDlg(bench);
DialogResult dr = dlg.ShowDialog();
if (dr == DialogResult.OK)
{
@@ -120,7 +120,7 @@ namespace ResultsBrowser
{
if (testBenchesListBox.SelectedIndex >= 0)
{
- Config.DatabaseSettingsDlg dlg = new Config.DatabaseSettingsDlg(localSettings.TestBenches[testBenchesListBox.SelectedIndex]);
+ Forms.DatabaseSettingsDlg dlg = new Forms.DatabaseSettingsDlg(localSettings.TestBenches[testBenchesListBox.SelectedIndex]);
DialogResult dr = dlg.ShowDialog();
if (dr == DialogResult.OK)
{
diff --git a/Config/DatabaseSettingsDlg.Designer.cs b/ResultsBrowser/Forms/DatabaseSettingsDlg.Designer.cs
similarity index 99%
rename from Config/DatabaseSettingsDlg.Designer.cs
rename to ResultsBrowser/Forms/DatabaseSettingsDlg.Designer.cs
index c2529135b..d804dbae5 100644
--- a/Config/DatabaseSettingsDlg.Designer.cs
+++ b/ResultsBrowser/Forms/DatabaseSettingsDlg.Designer.cs
@@ -1,7 +1,7 @@
///
/// Copyright (c) 2013-2015 Sensus Metering Systems
///
-namespace Config
+namespace ResultsBrowser.Forms
{
partial class DatabaseSettingsDlg
{
diff --git a/Config/DatabaseSettingsDlg.cs b/ResultsBrowser/Forms/DatabaseSettingsDlg.cs
similarity index 88%
rename from Config/DatabaseSettingsDlg.cs
rename to ResultsBrowser/Forms/DatabaseSettingsDlg.cs
index fb0b4a917..0ec56c8ad 100644
--- a/Config/DatabaseSettingsDlg.cs
+++ b/ResultsBrowser/Forms/DatabaseSettingsDlg.cs
@@ -3,9 +3,9 @@
///
using System;
using System.Windows.Forms;
-using Config.Resources;
+using ResultsBrowser.Resources;
-namespace Config
+namespace ResultsBrowser.Forms
{
///
/// Dialog to process test bench name and database settings (BenchSettings)
@@ -13,13 +13,13 @@ namespace Config
public partial class DatabaseSettingsDlg : Form
{
// Reference to bench DB settins (not a local copy)
- DatabaseSettings bench;
+ Config.DatabaseSettings bench;
///
/// Constructor
///
/// Test bench database settings
- public DatabaseSettingsDlg(DatabaseSettings bench)
+ public DatabaseSettingsDlg(Config.DatabaseSettings bench)
{
this.bench = bench;
@@ -53,9 +53,9 @@ namespace Config
realBenchCheckBox.Checked = bench.IsRealBench;
/// Initialize 'Database type' combo-boxes
- for (int i = 0; i < (int)Entities.DBType.DbTypesCount; i++)
+ for (int i = 0; i < (int)Config.Entities.DBType.DbTypesCount; i++)
{
- Entities.DBType dbType = (Entities.DBType)i;
+ Config.Entities.DBType dbType = (Config.Entities.DBType)i;
configDbTypeComboBox.Items.Add(dbType);
resultsDbTypeComboBox.Items.Add(dbType);
}
@@ -86,8 +86,8 @@ namespace Config
bench.ProceduresDBSettings.ConnectionString = configDbConnectionStringTextBox.Text;
bench.WaterMetersDBSettings.ConnectionString = resultsDbConnectionStringTextBox.Text;
- bench.ProceduresDBSettings.DbType = (Entities.DBType)configDbTypeComboBox.SelectedIndex;
- bench.WaterMetersDBSettings.DbType = (Entities.DBType)resultsDbTypeComboBox.SelectedIndex;
+ bench.ProceduresDBSettings.DbType = (Config.Entities.DBType)configDbTypeComboBox.SelectedIndex;
+ bench.WaterMetersDBSettings.DbType = (Config.Entities.DBType)resultsDbTypeComboBox.SelectedIndex;
return true;
}
@@ -130,7 +130,7 @@ namespace Config
try
{
Cursor.Current = Cursors.WaitCursor;
- FluentCommon.CreateEmptyConfigDB(bench.ProceduresDBSettings);
+ Config.FluentCommon.CreateEmptyConfigDB(bench.ProceduresDBSettings);
MessageBox.Show(Strings.DB_was_successfully_created, Strings.Notification);
Cursor.Current = Cursors.Default;
DialogResult = DialogResult.None;
@@ -152,7 +152,9 @@ namespace Config
try
{
Cursor.Current = Cursors.WaitCursor;
- FluentCommon.CreateEmptyResultsDB(bench.WaterMetersDBSettings);
+ Results.DB.DbType = bench.WaterMetersDBSettings.DbType;
+ Results.DB.ConnectionString = bench.WaterMetersDBSettings.ConnectionString;
+ Results.DB.CreateEmptyDB();
MessageBox.Show(Strings.DB_was_successfully_created, Strings.Notification);
Cursor.Current = Cursors.Default;
DialogResult = DialogResult.None;
diff --git a/Config/DatabaseSettingsDlg.resx b/ResultsBrowser/Forms/DatabaseSettingsDlg.resx
similarity index 99%
rename from Config/DatabaseSettingsDlg.resx
rename to ResultsBrowser/Forms/DatabaseSettingsDlg.resx
index 47f4fc496..2aa06ff38 100644
--- a/Config/DatabaseSettingsDlg.resx
+++ b/ResultsBrowser/Forms/DatabaseSettingsDlg.resx
@@ -122,7 +122,7 @@
614, 15
- 217, 28
+ 225, 28
@@ -147,7 +147,7 @@
614, 49
- 217, 28
+ 225, 28
13
@@ -493,10 +493,10 @@
NoControl
- 711, 104
+ 715, 104
- 120, 23
+ 124, 23
66
@@ -520,10 +520,10 @@
NoControl
- 711, 134
+ 715, 134
- 120, 23
+ 124, 23
68
@@ -550,7 +550,7 @@
6, 13
- 840, 172
+ 853, 172
CenterParent
diff --git a/ResultsBrowser/Program.cs b/ResultsBrowser/Program.cs
index 62df99dd7..592fb28ce 100644
--- a/ResultsBrowser/Program.cs
+++ b/ResultsBrowser/Program.cs
@@ -209,6 +209,9 @@ namespace ResultsBrowser
LocalSettings.LastBenchName = Config.Data.CurrentBench.BenchName;
LocalSettings.Save();
+ Results.DB.DbType = Config.Data.CurrentBench.WaterMetersDBSettings.DbType;
+ Results.DB.ConnectionString = Config.Data.CurrentBench.WaterMetersDBSettings.ConnectionString;
+
retryLogin = false;
break;
}
diff --git a/ResultsBrowser/ResultsBrowser.csproj b/ResultsBrowser/ResultsBrowser.csproj
index 06214fef8..c6d5f824f 100644
--- a/ResultsBrowser/ResultsBrowser.csproj
+++ b/ResultsBrowser/ResultsBrowser.csproj
@@ -86,6 +86,12 @@
AdditionalDataDlg.cs
+
+ Form
+
+
+ DatabaseSettingsDlg.cs
+
Form
@@ -126,6 +132,9 @@
AdditionalDataDlg.cs
+
+ DatabaseSettingsDlg.cs
+
LoginDlg.cs
diff --git a/TestBenchFramework/BenchesDlg.cs b/TestBenchFramework/BenchesDlg.cs
index 87536d722..99f0a8c41 100644
--- a/TestBenchFramework/BenchesDlg.cs
+++ b/TestBenchFramework/BenchesDlg.cs
@@ -58,12 +58,10 @@ namespace TBF
///
/// Create a new test bench DB specification and append it to the list
///
- /// Not used
- /// Not used
private void addButton_Click(object sender, EventArgs e)
{
Config.DatabaseSettings bench = new Config.DatabaseSettings();
- Config.DatabaseSettingsDlg dlg = new Config.DatabaseSettingsDlg(bench);
+ Forms.DatabaseSettingsDlg dlg = new Forms.DatabaseSettingsDlg(bench);
DialogResult dr = dlg.ShowDialog();
if (dr == DialogResult.OK)
{
@@ -94,8 +92,6 @@ namespace TBF
/// Create a new test bench DB specification,which is a copy of the
/// selected bench, and append it to the list
///
- /// Not used
- /// Not used
private void copyButton_Click(object sender, EventArgs e)
{
if (testBenchesListBox.SelectedIndex >= 0)
@@ -103,7 +99,7 @@ namespace TBF
Config.DatabaseSettings ori = localSettings.TestBenches[testBenchesListBox.SelectedIndex];
Config.DatabaseSettings bench = (Config.DatabaseSettings)ori.Clone();
- Config.DatabaseSettingsDlg dlg = new Config.DatabaseSettingsDlg(bench);
+ Forms.DatabaseSettingsDlg dlg = new Forms.DatabaseSettingsDlg(bench);
DialogResult dr = dlg.ShowDialog();
if (dr == DialogResult.OK)
{
@@ -126,13 +122,11 @@ namespace TBF
///
/// Edit selected test bench DB specification
///
- /// Not used
- /// Not used
private void editButton_Click(object sender, EventArgs e)
{
if (testBenchesListBox.SelectedIndex >= 0)
{
- Config.DatabaseSettingsDlg dlg = new Config.DatabaseSettingsDlg(localSettings.TestBenches[testBenchesListBox.SelectedIndex]);
+ Forms.DatabaseSettingsDlg dlg = new Forms.DatabaseSettingsDlg(localSettings.TestBenches[testBenchesListBox.SelectedIndex]);
DialogResult dr = dlg.ShowDialog();
if (dr == DialogResult.OK)
{
@@ -146,8 +140,6 @@ namespace TBF
///
/// Remove selected test bench DB specification from the list
///
- /// Not used
- /// Not used
private void removeButton_Click(object sender, EventArgs e)
{
int selectedIx = testBenchesListBox.SelectedIndex;
@@ -181,8 +173,6 @@ namespace TBF
///
/// Update setting, return 'OK'
///
- /// Not used
- /// Not used
private void okButton_Click(object sender, EventArgs e)
{
localSettings.Save();
@@ -195,8 +185,6 @@ namespace TBF
///
/// Throw away changes, return 'Cancel'
///
- /// Not used
- /// Not used
private void cancelButton_Click(object sender, EventArgs e)
{
DialogResult = DialogResult.Cancel;
@@ -207,8 +195,6 @@ namespace TBF
///
/// Double click on an item = edit item
///
- /// Not used
- /// Not used
private void testBenchesListBox_DoubleClick(object sender, EventArgs e)
{
editButton_Click(sender, e);
diff --git a/TestBenchFramework/Forms/DatabaseSettingsDlg.Designer.cs b/TestBenchFramework/Forms/DatabaseSettingsDlg.Designer.cs
new file mode 100644
index 000000000..cacf230f8
--- /dev/null
+++ b/TestBenchFramework/Forms/DatabaseSettingsDlg.Designer.cs
@@ -0,0 +1,211 @@
+///
+/// Copyright (c) 2013-2015 Sensus Metering Systems
+///
+namespace TBF.Forms
+{
+ partial class DatabaseSettingsDlg
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(DatabaseSettingsDlg));
+ this.okButton = new System.Windows.Forms.Button();
+ this.cancelButton = new System.Windows.Forms.Button();
+ this.label1 = new System.Windows.Forms.Label();
+ this.benchNameTextBox = new System.Windows.Forms.TextBox();
+ this.connectionStringLabel = new System.Windows.Forms.Label();
+ this.configDbConnectionStringTextBox = new System.Windows.Forms.TextBox();
+ this.resultsDbConnectionStringTextBox = new System.Windows.Forms.TextBox();
+ this.configLabel = new System.Windows.Forms.Label();
+ this.resultsLabel = new System.Windows.Forms.Label();
+ this.realBenchCheckBox = new System.Windows.Forms.CheckBox();
+ this.dbTypeLabel = new System.Windows.Forms.Label();
+ this.configDbTypeComboBox = new System.Windows.Forms.ComboBox();
+ this.resultsDbTypeComboBox = new System.Windows.Forms.ComboBox();
+ this.testConnConfigDbBtn = new System.Windows.Forms.Button();
+ this.testConnResultsDbBtn = new System.Windows.Forms.Button();
+ this.createConfigDbBtn = new System.Windows.Forms.Button();
+ this.createResultsDbBtn = new System.Windows.Forms.Button();
+ this.SuspendLayout();
+ //
+ // okButton
+ //
+ this.okButton.DialogResult = System.Windows.Forms.DialogResult.OK;
+ resources.ApplyResources(this.okButton, "okButton");
+ this.okButton.Name = "okButton";
+ this.okButton.UseVisualStyleBackColor = true;
+ this.okButton.Click += new System.EventHandler(this.okButton_Click);
+ //
+ // cancelButton
+ //
+ this.cancelButton.DialogResult = System.Windows.Forms.DialogResult.Cancel;
+ resources.ApplyResources(this.cancelButton, "cancelButton");
+ this.cancelButton.Name = "cancelButton";
+ this.cancelButton.UseVisualStyleBackColor = true;
+ this.cancelButton.Click += new System.EventHandler(this.cancelButton_Click);
+ //
+ // label1
+ //
+ resources.ApplyResources(this.label1, "label1");
+ this.label1.Name = "label1";
+ //
+ // benchNameTextBox
+ //
+ resources.ApplyResources(this.benchNameTextBox, "benchNameTextBox");
+ this.benchNameTextBox.Name = "benchNameTextBox";
+ //
+ // connectionStringLabel
+ //
+ resources.ApplyResources(this.connectionStringLabel, "connectionStringLabel");
+ this.connectionStringLabel.Name = "connectionStringLabel";
+ //
+ // configDbConnectionStringTextBox
+ //
+ resources.ApplyResources(this.configDbConnectionStringTextBox, "configDbConnectionStringTextBox");
+ this.configDbConnectionStringTextBox.Name = "configDbConnectionStringTextBox";
+ //
+ // resultsDbConnectionStringTextBox
+ //
+ resources.ApplyResources(this.resultsDbConnectionStringTextBox, "resultsDbConnectionStringTextBox");
+ this.resultsDbConnectionStringTextBox.Name = "resultsDbConnectionStringTextBox";
+ //
+ // label4
+ //
+ resources.ApplyResources(this.configLabel, "label4");
+ this.configLabel.Name = "label4";
+ //
+ // label6
+ //
+ resources.ApplyResources(this.resultsLabel, "label6");
+ this.resultsLabel.Name = "label6";
+ //
+ // realBenchCheckBox
+ //
+ resources.ApplyResources(this.realBenchCheckBox, "realBenchCheckBox");
+ this.realBenchCheckBox.Name = "realBenchCheckBox";
+ this.realBenchCheckBox.UseVisualStyleBackColor = true;
+ //
+ // dbTypeLabel
+ //
+ resources.ApplyResources(this.dbTypeLabel, "dbTypeLabel");
+ this.dbTypeLabel.Name = "dbTypeLabel";
+ //
+ // configDbTypeComboBox
+ //
+ this.configDbTypeComboBox.FormattingEnabled = true;
+ resources.ApplyResources(this.configDbTypeComboBox, "configDbTypeComboBox");
+ this.configDbTypeComboBox.Name = "configDbTypeComboBox";
+ //
+ // resultsDbTypeComboBox
+ //
+ this.resultsDbTypeComboBox.FormattingEnabled = true;
+ resources.ApplyResources(this.resultsDbTypeComboBox, "resultsDbTypeComboBox");
+ this.resultsDbTypeComboBox.Name = "resultsDbTypeComboBox";
+ //
+ // testConnConfigDbBtn
+ //
+ this.testConnConfigDbBtn.DialogResult = System.Windows.Forms.DialogResult.Cancel;
+ resources.ApplyResources(this.testConnConfigDbBtn, "testConnConfigDbBtn");
+ this.testConnConfigDbBtn.Name = "testConnConfigDbBtn";
+ this.testConnConfigDbBtn.UseVisualStyleBackColor = true;
+ this.testConnConfigDbBtn.Click += new System.EventHandler(this.testConnConfigDbBtn_Click);
+ //
+ // testConnResultsDbBtn
+ //
+ this.testConnResultsDbBtn.DialogResult = System.Windows.Forms.DialogResult.Cancel;
+ resources.ApplyResources(this.testConnResultsDbBtn, "testConnResultsDbBtn");
+ this.testConnResultsDbBtn.Name = "testConnResultsDbBtn";
+ this.testConnResultsDbBtn.UseVisualStyleBackColor = true;
+ this.testConnResultsDbBtn.Click += new System.EventHandler(this.testConnResultsDbBtn_Click);
+ //
+ // createConfigDbBtn
+ //
+ this.createConfigDbBtn.DialogResult = System.Windows.Forms.DialogResult.Cancel;
+ resources.ApplyResources(this.createConfigDbBtn, "createConfigDbBtn");
+ this.createConfigDbBtn.Name = "createConfigDbBtn";
+ this.createConfigDbBtn.UseVisualStyleBackColor = true;
+ this.createConfigDbBtn.Click += new System.EventHandler(this.createConfigDbBtn_Click);
+ //
+ // createResultsDbBtn
+ //
+ this.createResultsDbBtn.DialogResult = System.Windows.Forms.DialogResult.Cancel;
+ resources.ApplyResources(this.createResultsDbBtn, "createResultsDbBtn");
+ this.createResultsDbBtn.Name = "createResultsDbBtn";
+ this.createResultsDbBtn.UseVisualStyleBackColor = true;
+ this.createResultsDbBtn.Click += new System.EventHandler(this.createResultsDbBtn_Click);
+ //
+ // DatabaseSettingsDlg
+ //
+ resources.ApplyResources(this, "$this");
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.Controls.Add(this.createResultsDbBtn);
+ this.Controls.Add(this.createConfigDbBtn);
+ this.Controls.Add(this.testConnResultsDbBtn);
+ this.Controls.Add(this.testConnConfigDbBtn);
+ this.Controls.Add(this.resultsDbTypeComboBox);
+ this.Controls.Add(this.configDbTypeComboBox);
+ this.Controls.Add(this.dbTypeLabel);
+ this.Controls.Add(this.realBenchCheckBox);
+ this.Controls.Add(this.resultsLabel);
+ this.Controls.Add(this.configLabel);
+ this.Controls.Add(this.resultsDbConnectionStringTextBox);
+ this.Controls.Add(this.configDbConnectionStringTextBox);
+ this.Controls.Add(this.connectionStringLabel);
+ this.Controls.Add(this.benchNameTextBox);
+ this.Controls.Add(this.label1);
+ this.Controls.Add(this.okButton);
+ this.Controls.Add(this.cancelButton);
+ this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
+ this.MinimizeBox = false;
+ this.Name = "DatabaseSettingsDlg";
+ this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide;
+ this.Load += new System.EventHandler(this.BenchSettingsDlg_Load);
+ this.ResumeLayout(false);
+ this.PerformLayout();
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.Button okButton;
+ private System.Windows.Forms.Button cancelButton;
+ private System.Windows.Forms.Label label1;
+ private System.Windows.Forms.TextBox benchNameTextBox;
+ private System.Windows.Forms.Label connectionStringLabel;
+ private System.Windows.Forms.TextBox configDbConnectionStringTextBox;
+ private System.Windows.Forms.TextBox resultsDbConnectionStringTextBox;
+ private System.Windows.Forms.Label configLabel;
+ private System.Windows.Forms.Label resultsLabel;
+ private System.Windows.Forms.CheckBox realBenchCheckBox;
+ private System.Windows.Forms.Label dbTypeLabel;
+ private System.Windows.Forms.ComboBox configDbTypeComboBox;
+ private System.Windows.Forms.ComboBox resultsDbTypeComboBox;
+ private System.Windows.Forms.Button testConnConfigDbBtn;
+ private System.Windows.Forms.Button testConnResultsDbBtn;
+ private System.Windows.Forms.Button createConfigDbBtn;
+ private System.Windows.Forms.Button createResultsDbBtn;
+ }
+}
\ No newline at end of file
diff --git a/TestBenchFramework/Forms/DatabaseSettingsDlg.cs b/TestBenchFramework/Forms/DatabaseSettingsDlg.cs
new file mode 100644
index 000000000..e535a80f0
--- /dev/null
+++ b/TestBenchFramework/Forms/DatabaseSettingsDlg.cs
@@ -0,0 +1,182 @@
+///
+/// Copyright (c) 2013-2015 Sensus Metering Systems
+///
+using System;
+using System.Windows.Forms;
+using TBF.Resources;
+
+namespace TBF.Forms
+{
+ ///
+ /// Dialog to process test bench name and database settings (BenchSettings)
+ ///
+ public partial class DatabaseSettingsDlg : Form
+ {
+ // Reference to bench DB settins (not a local copy)
+ Config.DatabaseSettings bench;
+
+ ///
+ /// Constructor
+ ///
+ /// Test bench database settings
+ public DatabaseSettingsDlg(Config.DatabaseSettings bench)
+ {
+ this.bench = bench;
+
+ InitializeComponent();
+ }
+
+ void Localize()
+ {
+ Text = Strings.Test_Bench_Databases_Specification;
+ label1.Text = Strings.Test_bench_name;
+ realBenchCheckBox.Text = Strings.Test_bench_is_controlled_by_this_computer;
+ dbTypeLabel.Text = Strings.Database_type;
+ connectionStringLabel.Text = Strings.Connection_string;
+ configLabel.Text = Strings.Configuration;
+ resultsLabel.Text = Strings.Results;
+ okButton.Text = Strings.OkBtnText;
+ cancelButton.Text = Strings.CancelBtnText;
+
+ testConnConfigDbBtn.Text = Strings.Test_connection;
+ testConnResultsDbBtn.Text = Strings.Test_connection;
+
+ createConfigDbBtn.Text = Strings.Create_DB;
+ createResultsDbBtn.Text = Strings.Create_DB;
+ }
+
+ private void BenchSettingsDlg_Load(object sender, EventArgs e)
+ {
+ Localize();
+
+ benchNameTextBox.Text = bench.BenchName;
+ realBenchCheckBox.Checked = bench.IsRealBench;
+
+ /// Initialize 'Database type' combo-boxes
+ for (int i = 0; i < (int)Config.Entities.DBType.DbTypesCount; i++)
+ {
+ Config.Entities.DBType dbType = (Config.Entities.DBType)i;
+ configDbTypeComboBox.Items.Add(dbType);
+ resultsDbTypeComboBox.Items.Add(dbType);
+ }
+ configDbTypeComboBox.SelectedIndex = (int)bench.ProceduresDBSettings.DbType;
+ resultsDbTypeComboBox.SelectedIndex = (int)bench.WaterMetersDBSettings.DbType;
+
+ /// Initialize connection strings
+ configDbConnectionStringTextBox.Text = bench.ProceduresDBSettings.ConnectionString;
+ resultsDbConnectionStringTextBox.Text = bench.WaterMetersDBSettings.ConnectionString;
+ }
+
+ bool UpdateBenchFromUIControls()
+ {
+ /// TODO: The following code doesnot work as expected - error message shown!
+ //for (int i = 0; i < Program.LocalSettings.BenchesCount; i++)
+ //{
+ // if (bench != Program.LocalSettings.TestBenches[i] &&
+ // benchNameTextBox.Text == Program.LocalSettings.TestBenches[i].BenchName)
+ // {
+ // MessageBox.Show(Strings.Bench_name_conflict_Use_another_name_pls, Strings.Error, MessageBoxButtons.OK);
+ // return false;
+ // }
+ //}
+
+ bench.BenchName = benchNameTextBox.Text;
+ bench.IsRealBench = realBenchCheckBox.Checked;
+
+ bench.ProceduresDBSettings.ConnectionString = configDbConnectionStringTextBox.Text;
+ bench.WaterMetersDBSettings.ConnectionString = resultsDbConnectionStringTextBox.Text;
+
+ bench.ProceduresDBSettings.DbType = (Config.Entities.DBType)configDbTypeComboBox.SelectedIndex;
+ bench.WaterMetersDBSettings.DbType = (Config.Entities.DBType)resultsDbTypeComboBox.SelectedIndex;
+
+ return true;
+ }
+
+ ///
+ /// Update bench DB setting, return 'OK'
+ ///
+ /// Not used
+ /// Not used
+ private void okButton_Click(object sender, EventArgs e)
+ {
+ if (UpdateBenchFromUIControls())
+ {
+ DialogResult = DialogResult.OK;
+ Close();
+ return;
+ }
+
+ DialogResult = DialogResult.None;
+ }
+
+ ///
+ /// Throw away changes, return 'Cancel'
+ ///
+ /// Not used
+ /// Not used
+ private void cancelButton_Click(object sender, EventArgs e)
+ {
+ DialogResult = DialogResult.Cancel;
+ Close();
+ }
+
+ private void createConfigDbBtn_Click(object sender, EventArgs e)
+ {
+ if (!UpdateBenchFromUIControls()) return;
+
+ if (DialogResult.OK == MessageBox.Show(Strings.DB_will_be_overwritten + Environment.NewLine +
+ Strings.Do_you_want_to_proceed, Strings.Warning,
+ MessageBoxButtons.OKCancel, MessageBoxIcon.Exclamation))
+ try
+ {
+ Cursor.Current = Cursors.WaitCursor;
+ Config.FluentCommon.CreateEmptyConfigDB(bench.ProceduresDBSettings);
+ MessageBox.Show(Strings.DB_was_successfully_created, Strings.Notification);
+ Cursor.Current = Cursors.Default;
+ DialogResult = DialogResult.None;
+ }
+ catch (Exception exception)
+ {
+ Cursor.Current = Cursors.Default;
+ MessageBox.Show(Strings.Error_while_creating_DB_Reason + exception.Message, Strings.Error);
+ }
+ }
+
+ private void createResultsDbBtn_Click(object sender, EventArgs e)
+ {
+ if (!UpdateBenchFromUIControls()) return;
+
+ if (DialogResult.OK == MessageBox.Show(Strings.DB_will_be_overwritten + Environment.NewLine +
+ Strings.Do_you_want_to_proceed, Strings.Warning,
+ MessageBoxButtons.OKCancel, MessageBoxIcon.Exclamation))
+ try
+ {
+ Cursor.Current = Cursors.WaitCursor;
+ Results.DB.DbType = bench.WaterMetersDBSettings.DbType;
+ Results.DB.ConnectionString = bench.WaterMetersDBSettings.ConnectionString;
+ Results.DB.CreateEmptyDB();
+ MessageBox.Show(Strings.DB_was_successfully_created, Strings.Notification);
+ Cursor.Current = Cursors.Default;
+ DialogResult = DialogResult.None;
+ }
+ catch (Exception exception)
+ {
+ Cursor.Current = Cursors.Default;
+ string msg = Strings.Error_while_creating_DB_Reason + Environment.NewLine + exception.Message;
+ if (exception.InnerException != null)
+ {
+ msg += Environment.NewLine + exception.InnerException.Message;
+ }
+ MessageBox.Show(msg, Strings.Error, MessageBoxButtons.OK, MessageBoxIcon.Error);
+ }
+ }
+
+ private void testConnConfigDbBtn_Click(object sender, EventArgs e)
+ {
+ }
+
+ private void testConnResultsDbBtn_Click(object sender, EventArgs e)
+ {
+ }
+ }
+}
\ No newline at end of file
diff --git a/TestBenchFramework/Forms/DatabaseSettingsDlg.resx b/TestBenchFramework/Forms/DatabaseSettingsDlg.resx
new file mode 100644
index 000000000..2aa06ff38
--- /dev/null
+++ b/TestBenchFramework/Forms/DatabaseSettingsDlg.resx
@@ -0,0 +1,567 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+
+ 614, 15
+
+
+ 225, 28
+
+
+
+ 14
+
+
+ OK
+
+
+ okButton
+
+
+ System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ $this
+
+
+ 15
+
+
+ 614, 49
+
+
+ 225, 28
+
+
+ 13
+
+
+ Cancel
+
+
+ cancelButton
+
+
+ System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ $this
+
+
+ 16
+
+
+ True
+
+
+ 12, 18
+
+
+ 93, 13
+
+
+ 15
+
+
+ Test Bench Name
+
+
+ label1
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ $this
+
+
+ 14
+
+
+ 116, 15
+
+
+ 315, 20
+
+
+ 16
+
+
+ benchNameTextBox
+
+
+ System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ $this
+
+
+ 13
+
+
+ True
+
+
+ 199, 82
+
+
+ 89, 13
+
+
+ 18
+
+
+ Connection string
+
+
+ connectionStringLabel
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ $this
+
+
+ 12
+
+
+ 202, 107
+
+
+ 406, 20
+
+
+ 20
+
+
+ configDbConnectionStringTextBox
+
+
+ System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ $this
+
+
+ 11
+
+
+ 202, 137
+
+
+ 406, 20
+
+
+ 22
+
+
+ resultsDbConnectionStringTextBox
+
+
+ System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ $this
+
+
+ 10
+
+
+ True
+
+
+ 12, 110
+
+
+ 69, 13
+
+
+ 49
+
+
+ Configuration
+
+
+ label4
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ $this
+
+
+ 9
+
+
+ True
+
+
+ 12, 140
+
+
+ 42, 13
+
+
+ 51
+
+
+ Results
+
+
+ label6
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ $this
+
+
+ 8
+
+
+ True
+
+
+ 116, 47
+
+
+ 219, 17
+
+
+ 54
+
+
+ Test bench is controlled by this computer
+
+
+ realBenchCheckBox
+
+
+ System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ $this
+
+
+ 7
+
+
+ True
+
+
+ 113, 82
+
+
+ 76, 13
+
+
+ 55
+
+
+ Database type
+
+
+ dbTypeLabel
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ $this
+
+
+ 6
+
+
+ 116, 107
+
+
+ 80, 21
+
+
+ 58
+
+
+ configDbTypeComboBox
+
+
+ System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ $this
+
+
+ 5
+
+
+ 116, 137
+
+
+ 80, 21
+
+
+ 60
+
+
+ resultsDbTypeComboBox
+
+
+ System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ $this
+
+
+ 4
+
+
+
+ NoControl
+
+
+ 614, 105
+
+
+ 95, 23
+
+
+ 62
+
+
+ Test Connection
+
+
+ testConnConfigDbBtn
+
+
+ System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ $this
+
+
+ 3
+
+
+ NoControl
+
+
+ 614, 135
+
+
+ 95, 23
+
+
+ 64
+
+
+ Test Connection
+
+
+ testConnResultsDbBtn
+
+
+ System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ $this
+
+
+ 2
+
+
+ NoControl
+
+
+ 715, 104
+
+
+ 124, 23
+
+
+ 66
+
+
+ Create DB
+
+
+ createConfigDbBtn
+
+
+ System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ $this
+
+
+ 1
+
+
+ NoControl
+
+
+ 715, 134
+
+
+ 124, 23
+
+
+ 68
+
+
+ Create DB
+
+
+ createResultsDbBtn
+
+
+ System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ $this
+
+
+ 0
+
+
+ True
+
+
+ 6, 13
+
+
+ 853, 172
+
+
+ CenterParent
+
+
+ Test Bench Databases Specification
+
+
+ DatabaseSettingsDlg
+
+
+ System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/TestBenchFramework/Program.cs b/TestBenchFramework/Program.cs
index 088836c3e..5569100b8 100644
--- a/TestBenchFramework/Program.cs
+++ b/TestBenchFramework/Program.cs
@@ -225,6 +225,9 @@ namespace TBF
/// Save the selection to local settings
LocalSettings.LastBenchName = Config.Data.CurrentBench.BenchName;
+ Results.DB.DbType = Config.Data.CurrentBench.WaterMetersDBSettings.DbType;
+ Results.DB.ConnectionString = Config.Data.CurrentBench.WaterMetersDBSettings.ConnectionString;
+
retryLogin = false;
break;
}
diff --git a/TestBenchFramework/Resources/Strings.Designer.cs b/TestBenchFramework/Resources/Strings.Designer.cs
index 44ae5b88f..bae79ee3f 100644
--- a/TestBenchFramework/Resources/Strings.Designer.cs
+++ b/TestBenchFramework/Resources/Strings.Designer.cs
@@ -2247,6 +2247,15 @@ namespace TBF.Resources {
}
}
+ ///
+ /// Looks up a localized string similar to Results.
+ ///
+ internal static string Results {
+ get {
+ return ResourceManager.GetString("Results", resourceCulture);
+ }
+ }
+
///
/// Looks up a localized string similar to Retry.
///
diff --git a/TestBenchFramework/Resources/Strings.resx b/TestBenchFramework/Resources/Strings.resx
index 4fdd1da18..b432172f7 100644
--- a/TestBenchFramework/Resources/Strings.resx
+++ b/TestBenchFramework/Resources/Strings.resx
@@ -1162,4 +1162,7 @@
Revision
+
+ Results
+
\ No newline at end of file
diff --git a/TestBenchFramework/TBF.csproj b/TestBenchFramework/TBF.csproj
index 71707326d..65e00186d 100644
--- a/TestBenchFramework/TBF.csproj
+++ b/TestBenchFramework/TBF.csproj
@@ -492,6 +492,12 @@
WaterMeterCfgCtrl.cs
+
+ Form
+
+
+ DatabaseSettingsDlg.cs
+
Component
@@ -1640,6 +1646,9 @@
ClosingProgram.cs
+
+ DatabaseSettingsDlg.cs
+
EmergencyStopForm.cs
@@ -1907,6 +1916,10 @@
{743DF7DB-C7B6-42EB-986D-0F485E5588E4}
Config
+
+ {9D0DCC88-DC81-47EB-9FDD-4C3907871BFB}
+ Results
+