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 +