tbf/TBF/Rig/Network/RestAPI/facade/TestResults.cs

95 lines
2.7 KiB
C#

using System;
using System.Collections.Generic;
using Newtonsoft.Json;
using Results.Entities;
namespace TBF.Rig.Network.RestAPI.facade
{
/// <summary>
/// Results information transfer - Representing results output based on Water Meter to Server side.
/// </summary>
public class TestResults
{
public float? Temp_LN_ME { get; set; } // Calculated
public double? Mass { get; set; } // Calculated
// in Sec
public double? TestTime { get; set; }
public double? Q_v_r { get; set; }
public double? Vol_Rm { get; set; }
public float? Press_UP_ME { get; set; }
public DateTime? TimestampEnd { get; set; }
public DateTime? TimestampStart { get; set; }
public double? Start_volume { get; set; }
public double? End_volume { get; set; }
public double? ErrorRel { get; set; }
public string TestName { get; set; } // Collapsed 3 parameters
public TestResults()
{
}
public TestResults(MeterTestRslt meterTestRslt)
{
if (meterTestRslt == null)
{
return;
}
Results.Entities.TestData testData = meterTestRslt.TestData();
Results.Entities.TestRslt testRslt = meterTestRslt.TestRslt;
if (testRslt != null)
{
SetTemp_LN_ME_DB(testRslt.TempUpMean, testRslt.TempDownMean);
SetMass_DB(testRslt.MassEnd, testRslt.MassStart);
TestTime = testRslt.TestTime;
SetQ_v_r_DB(testRslt.Flow); // in m3/hr => l/hr
Press_UP_ME = testRslt.PressUpMean;
if (testData != null)
{
TestName = Results.Utils.GetTestName(testData.Name, testData.Repeats, testRslt.RepetitionNr);
}
}
Vol_Rm = meterTestRslt.VolumeRef;
Start_volume = meterTestRslt.VolumeStart;
End_volume = meterTestRslt.VolumeEnd;
ErrorRel = meterTestRslt.Error;
if (meterTestRslt.Batch() != null)
{
TimestampEnd = meterTestRslt.Batch().EndTime;
TimestampStart = meterTestRslt.Batch().StartTime;
}
}
public void SetTemp_LN_ME_DB(float tempUpMean, float tempDownMean)
{
Temp_LN_ME = (tempUpMean + tempDownMean) / 2;
}
public void SetMass_DB(double massEnd, double massStart)
{
Mass = massEnd - massStart;
}
public void SetQ_v_r_DB(double q_v_r)
{
Q_v_r = q_v_r * 1000; // m3/hr => l/hr
}
}
}