Results.Entities bug fixes and copy constructors.

This commit is contained in:
Milan Hanajik 2021-04-12 05:18:46 +02:00
parent 46489224cf
commit e90967b6ed
7 changed files with 493 additions and 332 deletions

View File

@ -122,6 +122,49 @@ namespace Results.Entities
Buoyancy = Config.Data.Buoyancy;
}
/// <summary>
/// Copy constructor, copies all except of Id.
/// Lists Tests, WaterMeters and TestRslts are empty. Have to be copied elwhere.
/// </summary>
public Batch(Batch oriBatch)
{
BatchNr = oriBatch.BatchNr;
ProgramVersion = oriBatch.ProgramVersion;
TestBenchId = oriBatch.TestBenchId;
TestBenchName = oriBatch.TestBenchName;
Address1 = oriBatch.Address1;
Address2 = oriBatch.Address2;
Address3 = oriBatch.Address3;
Address4 = oriBatch.Address4;
Address5 = oriBatch.Address5;
UserName = oriBatch.UserName;
UserNumber = oriBatch.UserNumber;
ProcedureName = oriBatch.ProcedureName;
IsRemoteProcedure = oriBatch.IsRemoteProcedure;
ProcedureDescription = oriBatch.ProcedureDescription;
ProcedureRevision = oriBatch.ProcedureRevision;
WatermetersStr = oriBatch.WatermetersStr;
ProtocolTitle = oriBatch.ProtocolTitle;
Remark = oriBatch.Remark;
RealDensity = oriBatch.RealDensity;
AtTemperature = oriBatch.AtTemperature;
Buoyancy = oriBatch.Buoyancy;
Counter6 = oriBatch.Counter6;
Counter7 = oriBatch.Counter7;
Counter8 = oriBatch.Counter8;
Counter9 = oriBatch.Counter9;
Counter10 = oriBatch.Counter10;
StartTime = oriBatch.StartTime;
EndTime = oriBatch.EndTime;
Dirty = oriBatch.Dirty;
RsltsSent = oriBatch.RsltsSent;
RsltsPrinted = oriBatch.RsltsPrinted;
Tests = new List<TestData>();
WaterMeters = new List<WaterMeter>();
TestRslts = new List<TestRslt>();
}
public virtual int PassedMetersCount()
{
int count = 0;

View File

@ -22,6 +22,9 @@ namespace Results.Entities
public virtual string Custom2 { get; set; }
public virtual string Custom3 { get; set; }
/// <summary>
/// Default constructor, safe values
/// </summary>
public Components()
{
TestBenchId = 0;
@ -51,6 +54,23 @@ namespace Results.Entities
Custom3 = string.Empty;
}
/// <summary>
/// Copy constructor, copies all except of Id
/// </summary>
public Components(Components oriComponents)
{
TestBenchId = oriComponents.TestBenchId;
TestBenchName = oriComponents.TestBenchName;
Pump = oriComponents.Pump;
RegValve = oriComponents.RegValve;
Flowmeter = oriComponents.Flowmeter;
Diverter = oriComponents.Diverter;
Scale = oriComponents.Scale;
Custom1 = oriComponents.Custom1;
Custom2 = oriComponents.Custom2;
Custom3 = oriComponents.Custom3;
}
/// <summary>
/// Method to compare the content of two entities

View File

@ -12,7 +12,6 @@ namespace Results.Entities
public virtual int Id { get; protected set; }
public virtual byte CompoundMeterId { get; set; } /// 0=single, 1=compound/main, 2=compound/aux., 3=compound/overal, 4=heat meter volume, 5=heat meter energy
public virtual int RegReaderType { get; set; } /// Not mapped to the DB, does not depend on localization and customer
public virtual double PulsesMeter { get; set; } /// # of water meter or heat meter pulses
public virtual double PulsesMaster { get; set; } /// # of reference flowmeter pulses (gated by this water meter pulses)
public virtual double PulsesPerLiter { get; set; } /// [l ^ -1], in case of heat meters (CompoundMeterId==5) pulses per kWh in [kWh ^ -1]
@ -38,7 +37,9 @@ namespace Results.Entities
public virtual WaterMeter WaterMeter { get; set; } /// reference to the WaterMeter entity
public virtual TestRslt TestRslt { get; set; } /// reference to the TestRslt entity
///
/// Wrappers
///
public virtual string Name() { return TestRslt.Name(); }
public virtual DateTime StartTime() { return TestRslt.StartTime; }
public virtual DateTime EndTime() { return TestRslt.EndTime; }
@ -114,6 +115,36 @@ namespace Results.Entities
CompoundMeterId = (byte)compoundMeterId;
}
/// <summary>
/// Copy constructor, copies all except of Id
/// TestRslt and WaterMeter references arenot set.
/// They have to be copied/ser manually.
/// </summary>
public MeterTestRslt(MeterTestRslt oriMTR)
{
CompoundMeterId = oriMTR.CompoundMeterId;
RegReaderType = oriMTR.RegReaderType;
PulsesMeter = oriMTR.PulsesMeter;
PulsesMaster = oriMTR.PulsesMaster;
PulsesPerLiter = oriMTR.PulsesPerLiter;
VolumeStart = oriMTR.VolumeStart;
VolumeEnd = oriMTR.VolumeEnd;
VolumeMeter = oriMTR.VolumeMeter;
VolumeRef = oriMTR.VolumeRef;
TimestampStart = oriMTR.TimestampStart;
TimestampEnd = oriMTR.TimestampEnd;
TestTime = oriMTR.TestTime;
Error = oriMTR.Error;
ErrorIndicators = oriMTR.ErrorIndicators;
InfoIndicators = oriMTR.InfoIndicators;
KorrErrQ = oriMTR.KorrErrQ;
TestDone = oriMTR.TestDone;
Passed = oriMTR.Passed;
#if ORACLE_DB
LastError = oriMTR.LastError;
#endif
}
public virtual void CopyContentFrom(MeterTestRslt src)
{
if (src == null) return;
@ -132,6 +163,7 @@ namespace Results.Entities
TestTime = src.TestTime;
Error = src.Error;
ErrorIndicators = src.ErrorIndicators;
InfoIndicators = src.InfoIndicators;
KorrErrQ = src.KorrErrQ;
TestDone = src.TestDone;
Passed = src.Passed;

View File

@ -5,6 +5,7 @@ using System;
using System.Collections.Generic;
using System.Linq;
using System.IO;
using Config.Entities;
namespace Results.Entities
{
@ -32,13 +33,16 @@ namespace Results.Entities
public virtual bool Evaluate { get; set; }
/// <summary>
/// Default constructor, safe values
/// </summary>
public TestData()
{
Name = string.Empty;
Method = string.Empty;
}
public TestData(Config.Entities.Test test)
public TestData(Test test)
: this()
{
Name = test.Name;
@ -59,6 +63,29 @@ namespace Results.Entities
Evaluate = test.DoEvaluate;
}
/// <summary>
/// Copy constructor, copies all except of Id
/// </summary>
public TestData(TestData oriTestData)
{
Name = oriTestData.Name;
Repeats = oriTestData.Repeats;
Qtg = oriTestData.Qtg;
Qfrom = oriTestData.Qfrom;
Qto = oriTestData.Qto;
TargetVolume = oriTestData.TargetVolume;
TargetTime = oriTestData.TargetTime;
Method = oriTestData.Method;
ErrLimLo = oriTestData.ErrLimLo;
ErrLimHi = oriTestData.ErrLimHi;
ErrLimMargin = oriTestData.ErrLimMargin;
DoControlWaterTemp = oriTestData.DoControlWaterTemp;
TempLimLo = oriTestData.TempLimLo;
TempLimHi = oriTestData.TempLimHi;
Publish = oriTestData.Publish;
Evaluate = oriTestData.Evaluate;
}
/// <summary>
/// Method to compare the content of two entities

View File

@ -15,6 +15,7 @@ namespace Results.Entities
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...)
public virtual string MethodClass { get; set; } /// Not mapped to DB, does not depend on localization and customer
@ -247,6 +248,7 @@ namespace Results.Entities
if (src == null) return;
Components = src.Components; /// ???
Part = src.Part;
RepetitionNr = src.RepetitionNr;
MethodClass = src.MethodClass;
@ -257,6 +259,7 @@ namespace Results.Entities
FlowSetTime = src.FlowSetTime;
TimeBtwnMassMsrmnts = src.TimeBtwnMassMsrmnts;
TestTime = src.TestTime;
TestTimeCorrection = src.TestTimeCorrection;
PulsesMaster = src.PulsesMaster;
TotalPulsesMstr = src.TotalPulsesMstr;
ConstMasterRaw = src.ConstMasterRaw;
@ -275,6 +278,7 @@ namespace Results.Entities
VolumeCTV = src.VolumeCTV;
VolumeMaster = src.VolumeMaster;
ErrorMaster = src.ErrorMaster;
DiverterStart = src.DiverterStart;
DivStart10 = src.DivStart10;
DivStart50 = src.DivStart50;
@ -283,9 +287,11 @@ namespace Results.Entities
DivEnd10 = src.DivEnd10;
DivEnd50 = src.DivEnd50;
DivEnd90 = src.DivEnd90;
ErrorFlags = src.ErrorFlags;
InfoFlags = src.InfoFlags;
RefEnergy = src.RefEnergy;
AmbTempMean = src.AmbTempMean;
AmbTempStart = src.AmbTempStart;
AmbTempEnd = src.AmbTempEnd;
@ -342,6 +348,12 @@ namespace Results.Entities
ConductMin = src.ConductMin;
ConductMax = src.ConductMax;
Uncertnt = src.Uncertnt;
UncertntScale = src.UncertntScale;
UncertntDensity = src.UncertntDensity;
UncertntTemp = src.UncertntTemp;
UncertntPressure = src.UncertntPressure;
Custom1 = src.Custom1;
Custom2 = src.Custom2;
Custom3 = src.Custom3;

View File

@ -463,12 +463,13 @@ namespace Results.Entities
SerialNrAux = src.SerialNrAux;
PurchaseOrder = src.PurchaseOrder;
YearOfProduction = src.YearOfProduction;
// WMPosition skipped
WMPosition = src.WMPosition;
EndState = src.EndState;
EndStateAux = src.EndStateAux;
QRise = src.QRise;
QFall = src.QFall;
ErrorFlags = src.ErrorFlags;
InfoFlags = src.InfoFlags;
Passed = src.Passed;
ResultCode = src.ResultCode;
ArchivePath = src.ArchivePath;
@ -508,12 +509,12 @@ namespace Results.Entities
WMTypeRevision = src.WMTypeRevision;
Pruefindex = src.Pruefindex;
HydrPruefung = src.HydrPruefung;
RawTestInfos = src.RawTestInfos;
CompleteTestInfos = src.CompleteTestInfos;
RawTestInfos = src.RawTestInfos; /// Not mapped to DB
CompleteTestInfos = src.CompleteTestInfos; /// Not mapped to DB
#endif
ProcessId = src.ProcessId;
SessionId = src.SessionId;
LastRecordIsNok = src.LastRecordIsNok;
ProcessId = src.ProcessId; /// Not mapped to DB
SessionId = src.SessionId; /// Not mapped to DB
LastRecordIsNok = src.LastRecordIsNok; /// Not mapped to DB
foreach (var mtr in MeterTestRslts)
{

View File

@ -5,6 +5,7 @@ using System;
using System.Collections.Generic;
using System.Linq;
using System.IO;
using Config.Entities;
namespace Results.Entities
{
@ -13,26 +14,21 @@ namespace Results.Entities
public virtual int Id { get; protected set; }
public virtual string ProductName { get; set; }
public virtual string Producer { get; set; }
public virtual double DN { get; set; } /// [mm]
public virtual double L { get; set; } /// [mm]
public virtual Config.Entities.Mounting Mounting { get; set; } /// H / V / S / F
public virtual Mounting Mounting { get; set; } /// H / V / S / F
public virtual bool NewQnames { get; set; } /// Yes = Q3... No = Qn...
public virtual double Q4_Qmax { get; set; } /// [m3/h]
public virtual double Q3_Qn { get; set; } /// [m3/h]
public virtual double Q2_Qt { get; set; } /// [m3/h]
public virtual double Q1_Qmin { get; set; } /// [m3/h]
public virtual string MetrologicalClass { get; set; }
public virtual Config.Entities.TemperatureClass TemperatureClass { get; set; }
public virtual Config.Entities.PressureLossClass PressureLossClass { get; set; }
public virtual Config.Entities.MaxAdmissiblePressure MaxAdmissiblePressure { get; set; }
public virtual Config.Entities.FlowProfileSensitivityClass FlowProfileSensitivityClass { get; set; }
public virtual TemperatureClass TemperatureClass { get; set; }
public virtual PressureLossClass PressureLossClass { get; set; }
public virtual MaxAdmissiblePressure MaxAdmissiblePressure { get; set; }
public virtual FlowProfileSensitivityClass FlowProfileSensitivityClass { get; set; }
public virtual string ApprovalInfo { get; set; }
public virtual string Certificate { get; set; }
public virtual double PulsesPerLtr { get; set; }
/// Concerns compound water meters
@ -41,25 +37,65 @@ namespace Results.Entities
public virtual string MetrologicalClassAux { get; set; }
public virtual string ApprovalInfoAux { get; set; }
public virtual Config.Entities.Medium Medium { get; set; }
public virtual Medium Medium { get; set; }
public virtual string Text1 { get; set; }
public virtual string Text2 { get; set; }
public virtual string Text3 { get; set; }
public virtual string Text4 { get; set; }
public virtual string Text5 { get; set; }
public virtual bool Compound { get; set; }
public virtual bool HeatMeter { get; set; }
#if ORACLE_DB
public virtual int WMTypeId { get; set; }
#endif
/// <summary>
/// Default constructor, safe values
/// </summary>
public WaterMeterData()
{
}
/// <summary>
/// Copy constructor, copies all except of Id
/// </summary>
public WaterMeterData(WaterMeterData oriWMData)
{
ProductName = oriWMData.ProductName;
Producer = oriWMData.Producer;
DN = oriWMData.DN;
L = oriWMData.L;
Mounting = oriWMData.Mounting;
NewQnames = oriWMData.NewQnames;
Q4_Qmax = oriWMData.Q4_Qmax;
Q3_Qn = oriWMData.Q3_Qn;
Q2_Qt = oriWMData.Q2_Qt;
Q1_Qmin = oriWMData.Q1_Qmin;
MetrologicalClass = oriWMData.MetrologicalClass;
TemperatureClass = oriWMData.TemperatureClass;
PressureLossClass = oriWMData.PressureLossClass;
MaxAdmissiblePressure = oriWMData.MaxAdmissiblePressure;
FlowProfileSensitivityClass = oriWMData.FlowProfileSensitivityClass;
ApprovalInfo = oriWMData.ApprovalInfo;
Certificate = oriWMData.Certificate;
PulsesPerLtr = oriWMData.PulsesPerLtr;
ProducerAux = oriWMData.ProducerAux;
Q3_Qn_Aux = oriWMData.Q3_Qn_Aux;
MetrologicalClassAux = oriWMData.MetrologicalClassAux;
ApprovalInfoAux = oriWMData.ApprovalInfoAux;
Medium = oriWMData.Medium;
Text1 = oriWMData.Text1;
Text2 = oriWMData.Text2;
Text3 = oriWMData.Text3;
Text4 = oriWMData.Text4;
Text5 = oriWMData.Text5;
Compound = oriWMData.Compound;
HeatMeter = oriWMData.HeatMeter;
#if ORACLE_DB
WMTypeId = oriWMData.WMTypeId;
#endif
}
/// <summary>
/// Method to compare the content of two entities
@ -70,44 +106,34 @@ namespace Results.Entities
{
if (ProductName != wmd.ProductName) return false;
if (Producer != wmd.Producer) return false;
if (DN != wmd.DN) return false;
if (L != wmd.L) return false;
if (Mounting != wmd.Mounting) return false;
if (NewQnames != wmd.NewQnames) return false;
if (Q4_Qmax != wmd.Q4_Qmax) return false;
if (Q3_Qn != wmd.Q3_Qn) return false;
if (Q2_Qt != wmd.Q2_Qt) return false;
if (Q1_Qmin != wmd.Q1_Qmin) return false;
if (MetrologicalClass != wmd.MetrologicalClass) return false;
if (TemperatureClass != wmd.TemperatureClass) return false;
if (PressureLossClass != wmd.PressureLossClass) return false;
if (MaxAdmissiblePressure != wmd.MaxAdmissiblePressure) return false;
if (FlowProfileSensitivityClass != wmd.FlowProfileSensitivityClass) return false;
if (ApprovalInfo != wmd.ApprovalInfo) return false;
if (Certificate != wmd.Certificate) return false;
if (PulsesPerLtr != wmd.PulsesPerLtr) return false;
if (ProducerAux != wmd.ProducerAux) return false;
if (Q3_Qn_Aux != wmd.Q3_Qn_Aux) return false;
if (MetrologicalClassAux != wmd.MetrologicalClassAux) return false;
if (ApprovalInfoAux != wmd.ApprovalInfoAux) return false;
if (Medium != wmd.Medium) return false;
if (Text1 != wmd.Text1) return false;
if (Text2 != wmd.Text2) return false;
if (Text3 != wmd.Text3) return false;
if (Text4 != wmd.Text4) return false;
if (Text5 != wmd.Text5) return false;
if (Compound != wmd.Compound) return false;
if (HeatMeter != wmd.HeatMeter) return false;
#if ORACLE_DB
if (WMTypeId != wmd.WMTypeId) return false;
#endif