'completeTestInfo' reloaded when only the procedure changes (and not wmTypeID), usefull for iPerlSpecial, ver. 2.18.1174
This commit is contained in:
@@ -9,6 +9,7 @@ using log4net;
|
|||||||
using Oracle.DataAccess.Client; // ODP.NET Oracle managed provider
|
using Oracle.DataAccess.Client; // ODP.NET Oracle managed provider
|
||||||
using Config;
|
using Config;
|
||||||
using Config.Entities;
|
using Config.Entities;
|
||||||
|
using System.Text;
|
||||||
|
|
||||||
namespace TBF.BenchControl.Output.DB.SensusOracle
|
namespace TBF.BenchControl.Output.DB.SensusOracle
|
||||||
{
|
{
|
||||||
@@ -61,6 +62,7 @@ namespace TBF.BenchControl.Output.DB.SensusOracle
|
|||||||
///
|
///
|
||||||
int wmTypeId;
|
int wmTypeId;
|
||||||
int wmTypeRevision;
|
int wmTypeRevision;
|
||||||
|
string procedureSignature;
|
||||||
IList<SensusTestInfo> oracleTestInfo; /// Raw incomplete test info from Oracle DB (or null)
|
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)
|
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
|
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;
|
int wmTR;
|
||||||
IList<SensusTestInfo> rti = GetOracleTestInfo(conn, wm.WaterMeterData.WMTypeId, out wmTR);
|
IList<SensusTestInfo> rti = GetOracleTestInfo(conn, wm.WaterMeterData.WMTypeId, out wmTR);
|
||||||
|
|
||||||
if (rti != null)
|
if (rti != null)
|
||||||
{
|
{
|
||||||
IList<string> wmTestNames = new List<string>();
|
/// All 5 updated together
|
||||||
foreach (var mtr in wm.MeterTestRslts) wmTestNames.Add(mtr.Name());
|
|
||||||
|
|
||||||
/// All 4 updated together
|
|
||||||
wmTypeId = wm.WaterMeterData.WMTypeId;
|
wmTypeId = wm.WaterMeterData.WMTypeId;
|
||||||
wmTypeRevision = wmTR;
|
wmTypeRevision = wmTR;
|
||||||
|
procedureSignature = procedureSignatureSB.ToString();
|
||||||
oracleTestInfo = rti;
|
oracleTestInfo = rti;
|
||||||
completeTestInfo = SensusTestInfo.GetBestMatch(rti, wmTestNames);
|
completeTestInfo = SensusTestInfo.GetBestMatch(rti, wmTestNames);
|
||||||
|
|
||||||
@@ -682,21 +691,28 @@ namespace TBF.BenchControl.Output.DB.SensusOracle
|
|||||||
/// <param name="b">Batch</param>
|
/// <param name="b">Batch</param>
|
||||||
void SaveBatchData(OracleConnection conn, Results.Entities.Batch b)
|
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;
|
int wmTR = 0;
|
||||||
IList<SensusTestInfo> ti = GetOracleTestInfo(conn, b.WaterMeters[0].WaterMeterData.WMTypeId, out wmTR);
|
IList<SensusTestInfo> ti = GetOracleTestInfo(conn, b.WaterMeters[0].WaterMeterData.WMTypeId, out wmTR);
|
||||||
|
|
||||||
if (ti != null)
|
if (ti != null)
|
||||||
{
|
{
|
||||||
IList<string> wmTestNames = new List<string>();
|
/// All 5 updated together
|
||||||
foreach (var tr in b.TestRslts) wmTestNames.Add(tr.Name());
|
|
||||||
|
|
||||||
/// All 4 updated together
|
|
||||||
oracleTestInfo = ti;
|
|
||||||
completeTestInfo = SensusTestInfo.GetBestMatch(oracleTestInfo, wmTestNames);
|
|
||||||
wmTypeId = b.WaterMeters[0].WaterMeterData.WMTypeId;
|
wmTypeId = b.WaterMeters[0].WaterMeterData.WMTypeId;
|
||||||
wmTypeRevision = wmTR;
|
wmTypeRevision = wmTR;
|
||||||
|
procedureSignature = procedureSignatureSB.ToString();
|
||||||
|
oracleTestInfo = ti;
|
||||||
|
completeTestInfo = SensusTestInfo.GetBestMatch(oracleTestInfo, wmTestNames);
|
||||||
|
|
||||||
foreach (var cti in completeTestInfo)
|
foreach (var cti in completeTestInfo)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -29,5 +29,5 @@ using System.Runtime.InteropServices;
|
|||||||
// Build Number
|
// Build Number
|
||||||
// Revision
|
// Revision
|
||||||
//
|
//
|
||||||
[assembly: AssemblyVersion("2.18.1173.0")]
|
[assembly: AssemblyVersion("2.18.1174.0")]
|
||||||
[assembly: AssemblyFileVersion("2.18.1173.0")]
|
[assembly: AssemblyFileVersion("2.18.1174.0")]
|
||||||
|
|||||||
Reference in New Issue
Block a user