'completeTestInfo' reloaded when only the procedure changes (and not wmTypeID), usefull for iPerlSpecial, ver. 2.18.1174

This commit is contained in:
Milan Hanajik
2019-03-21 15:36:42 +01:00
parent c855a18c61
commit b8c4f35b1a
2 changed files with 30 additions and 14 deletions
@@ -9,6 +9,7 @@ using log4net;
using Oracle.DataAccess.Client; // ODP.NET Oracle managed provider
using Config;
using Config.Entities;
using System.Text;
namespace TBF.BenchControl.Output.DB.SensusOracle
{
@@ -61,6 +62,7 @@ namespace TBF.BenchControl.Output.DB.SensusOracle
///
int wmTypeId;
int wmTypeRevision;
string procedureSignature;
IList<SensusTestInfo> oracleTestInfo; /// Raw incomplete test info from Oracle DB (or null)
SensusTestInfo[] completeTestInfo; /// Complete TBF test info obtained as the best match (never null when oracleTestInfo != null)
@@ -330,19 +332,26 @@ namespace TBF.BenchControl.Output.DB.SensusOracle
try
{
if (oracleTestInfo == null || (wmTypeId == 0) || (wmTypeId != wm.WaterMeterData.WMTypeId))
IList<string> wmTestNames = new List<string>();
StringBuilder procedureSignatureSB = new StringBuilder();
foreach (var mtr in wm.MeterTestRslts)
{
wmTestNames.Add(mtr.Name());
procedureSignatureSB.Append(mtr.Name());
procedureSignatureSB.Append("~");
}
if (oracleTestInfo == null || (wmTypeId == 0) || (wmTypeId != wm.WaterMeterData.WMTypeId) || (procedureSignature != procedureSignatureSB.ToString()))
{
int wmTR;
IList<SensusTestInfo> rti = GetOracleTestInfo(conn, wm.WaterMeterData.WMTypeId, out wmTR);
if (rti != null)
{
IList<string> wmTestNames = new List<string>();
foreach (var mtr in wm.MeterTestRslts) wmTestNames.Add(mtr.Name());
/// All 4 updated together
/// All 5 updated together
wmTypeId = wm.WaterMeterData.WMTypeId;
wmTypeRevision = wmTR;
procedureSignature = procedureSignatureSB.ToString();
oracleTestInfo = rti;
completeTestInfo = SensusTestInfo.GetBestMatch(rti, wmTestNames);
@@ -682,21 +691,28 @@ namespace TBF.BenchControl.Output.DB.SensusOracle
/// <param name="b">Batch</param>
void SaveBatchData(OracleConnection conn, Results.Entities.Batch b)
{
if ((wmTypeId != b.WaterMeters[0].WaterMeterData.WMTypeId) || (oracleTestInfo == null) || (wmTypeRevision == 0))
IList<string> wmTestNames = new List<string>();
StringBuilder procedureSignatureSB = new StringBuilder();
foreach (var tr in b.TestRslts)
{
wmTestNames.Add(tr.Name());
procedureSignatureSB.Append(tr.Name());
procedureSignatureSB.Append("~");
}
if ((oracleTestInfo == null) || (wmTypeId != b.WaterMeters[0].WaterMeterData.WMTypeId) || (wmTypeRevision == 0) || (procedureSignature != procedureSignatureSB.ToString()))
{
int wmTR = 0;
IList<SensusTestInfo> ti = GetOracleTestInfo(conn, b.WaterMeters[0].WaterMeterData.WMTypeId, out wmTR);
if (ti != null)
{
IList<string> wmTestNames = new List<string>();
foreach (var tr in b.TestRslts) wmTestNames.Add(tr.Name());
/// All 4 updated together
oracleTestInfo = ti;
completeTestInfo = SensusTestInfo.GetBestMatch(oracleTestInfo, wmTestNames);
/// All 5 updated together
wmTypeId = b.WaterMeters[0].WaterMeterData.WMTypeId;
wmTypeRevision = wmTR;
procedureSignature = procedureSignatureSB.ToString();
oracleTestInfo = ti;
completeTestInfo = SensusTestInfo.GetBestMatch(oracleTestInfo, wmTestNames);
foreach (var cti in completeTestInfo)
{
+2 -2
View File
@@ -29,5 +29,5 @@ using System.Runtime.InteropServices;
// Build Number
// Revision
//
[assembly: AssemblyVersion("2.18.1173.0")]
[assembly: AssemblyFileVersion("2.18.1173.0")]
[assembly: AssemblyVersion("2.18.1174.0")]
[assembly: AssemblyFileVersion("2.18.1174.0")]