198 lines
8.5 KiB
C#
198 lines
8.5 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using log4net;
|
|
using Newtonsoft.Json;
|
|
using Results.Entities;
|
|
|
|
namespace TBF.Rig.Network.RestAPI.facade
|
|
{
|
|
public class ApiDataLoad
|
|
{
|
|
[JsonIgnore] private Results.BatchResults batchResults;
|
|
[JsonIgnore] private static readonly ILog log = LogManager.GetLogger(typeof(RestAPIAdapter));
|
|
|
|
public ApiDataLoad(Results.BatchResults batchResults)
|
|
{
|
|
this.batchResults = batchResults;
|
|
}
|
|
|
|
public String getJsonRequestBody()
|
|
{
|
|
try
|
|
{
|
|
List<WaterMeter> watermeterList = new List<WaterMeter>();
|
|
if (batchResults.Batch != null && batchResults.Batch.WaterMeters != null)
|
|
{
|
|
for (int i = 0; i < batchResults.Batch.WaterMeters.Count; i++)
|
|
{
|
|
if (batchResults.Batch.WaterMeters[i] != null && !batchResults.Batch.WaterMeters[i].Disabled)
|
|
{
|
|
watermeterList.Add(toFacaseWaterMeter(batchResults.Batch.WaterMeters[i]));
|
|
}
|
|
}
|
|
}
|
|
|
|
//do json from results
|
|
string jsonRequestBody = JsonConvert.SerializeObject(watermeterList, Formatting.Indented);
|
|
log.Debug("JSON to send in API: " + jsonRequestBody);
|
|
return jsonRequestBody;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
log.Error("getJsonRequestBody()", ex);
|
|
Console.WriteLine(ex);
|
|
}
|
|
|
|
return "";
|
|
}
|
|
|
|
// Assuming toFacaseWaterMeter method exists
|
|
private WaterMeter toFacaseWaterMeter(Results.Entities.WaterMeter meter)
|
|
{
|
|
try
|
|
{
|
|
WaterMeter waterMeter = new WaterMeter();
|
|
// logic to convert WaterMeter data to facase class
|
|
waterMeter.WaterMeterID = meter.Id;
|
|
waterMeter.Passed = meter.Passed;
|
|
waterMeter.Remark = meter.Remark;
|
|
waterMeter.ArchivePath = meter.ArchivePath;
|
|
waterMeter.EndState = meter.EndState;
|
|
waterMeter.OrderName = meter.PurchaseOrder;
|
|
waterMeter.QFall = meter.QFall;
|
|
waterMeter.QRise = meter.QRise;
|
|
waterMeter.RadioAddress = meter.RadioAddress;
|
|
waterMeter.ResultCode = meter.ResultCode;
|
|
waterMeter.SerialNo = meter.SerialNr;
|
|
waterMeter.WmPosition = meter.WMPosition;
|
|
waterMeter.EndStateAux = meter.EndStateAux;
|
|
waterMeter.SerialNrAux = meter.SerialNrAux;
|
|
waterMeter.YearOfProduction = meter.YearOfProduction;
|
|
|
|
//TODO BUMI implemet - Data from purchase
|
|
waterMeter.OrderID = null;
|
|
waterMeter.BoxId = "";
|
|
|
|
//convert next objects
|
|
waterMeter.WaterMeterData = toFacaseWaterMeterData(meter.WaterMeterData);
|
|
waterMeter.Batch = toFacadeBatch(meter.Batch);
|
|
|
|
waterMeter.TestResultsList = toFacasetoFacaseWaterMeterData(meter);
|
|
|
|
|
|
return waterMeter; // Update this line as per implementation
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
log.Error("toFacaseWaterMeter()", e);
|
|
return null;
|
|
}
|
|
}
|
|
|
|
private Batch toFacadeBatch(Results.Entities.Batch meterBatch)
|
|
{
|
|
try
|
|
{
|
|
Batch facadeBatch = null;
|
|
if (meterBatch != null)
|
|
{
|
|
facadeBatch = new Batch();
|
|
|
|
facadeBatch.Id = meterBatch.Id;
|
|
facadeBatch.BatchNr = meterBatch.BatchNr;
|
|
facadeBatch.TestBenchId = meterBatch.TestBenchId;
|
|
facadeBatch.ProgramVersion = meterBatch.ProgramVersion;
|
|
facadeBatch.UserName = meterBatch.UserName;
|
|
facadeBatch.UserNumber = meterBatch.UserNumber;
|
|
facadeBatch.ProcedureName = meterBatch.ProcedureName;
|
|
facadeBatch.ProcedureRevision = meterBatch.ProcedureRevision;
|
|
facadeBatch.Remark = meterBatch.Remark;
|
|
facadeBatch.Counter6 = meterBatch.Counter6;
|
|
facadeBatch.Counter7 = meterBatch.Counter7;
|
|
facadeBatch.Counter8 = meterBatch.Counter8;
|
|
facadeBatch.Counter9 = meterBatch.Counter9;
|
|
facadeBatch.Counter10 = meterBatch.Counter10;
|
|
facadeBatch.StartTime = meterBatch.StartTime;
|
|
facadeBatch.EndTime = meterBatch.EndTime;
|
|
facadeBatch.Dirty = meterBatch.Dirty;
|
|
facadeBatch.RsltsSent = meterBatch.RsltsSent;
|
|
facadeBatch.RsltsPrinted = meterBatch.RsltsPrinted;
|
|
}
|
|
|
|
return facadeBatch;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
log.Error("toFacadeBatch()", ex);
|
|
return null;
|
|
}
|
|
}
|
|
|
|
private WaterMeterData toFacaseWaterMeterData(Results.Entities.WaterMeterData meterWaterMeterData)
|
|
{
|
|
try
|
|
{
|
|
WaterMeterData waterMeterData = null;
|
|
|
|
if (meterWaterMeterData != null)
|
|
{
|
|
waterMeterData = new WaterMeterData();
|
|
|
|
waterMeterData.Id = meterWaterMeterData.Id;
|
|
waterMeterData.ProductName = meterWaterMeterData.ProductName;
|
|
waterMeterData.Producer = meterWaterMeterData.Producer;
|
|
waterMeterData.Dn = meterWaterMeterData.DN;
|
|
waterMeterData.L = meterWaterMeterData.L;
|
|
waterMeterData.Mounting =
|
|
meterWaterMeterData.Mounting
|
|
.ToString(); // Assuming Mounting is an enum or has a valid ToString implementation
|
|
waterMeterData.Q4Qmax = meterWaterMeterData.Q4_Qmax;
|
|
waterMeterData.Q3Qn = meterWaterMeterData.Q3_Qn;
|
|
waterMeterData.Q2Qt = meterWaterMeterData.Q2_Qt;
|
|
waterMeterData.Q1Qmin = meterWaterMeterData.Q1_Qmin;
|
|
waterMeterData.MetrologicalClass = meterWaterMeterData.MetrologicalClass;
|
|
waterMeterData.Certificate = meterWaterMeterData.Certificate;
|
|
waterMeterData.Compound = meterWaterMeterData.Compound;
|
|
waterMeterData.Medium = meterWaterMeterData.Medium.ToString();
|
|
waterMeterData.ApprovalInfo = meterWaterMeterData.ApprovalInfo;
|
|
waterMeterData.MaxAdmissiblePressure =
|
|
meterWaterMeterData.MaxAdmissiblePressure
|
|
.ToString(); // Assuming Register is an enum or has a valid ToString implementation
|
|
waterMeterData.TemperatureClass = meterWaterMeterData.TemperatureClass.ToString();
|
|
waterMeterData.ApprovalInfoAux = meterWaterMeterData.ApprovalInfoAux;
|
|
waterMeterData.PulsesPerLtr = meterWaterMeterData.PulsesPerLtr;
|
|
waterMeterData.ProducerAux = meterWaterMeterData.ProducerAux;
|
|
waterMeterData.Q3QnAux = meterWaterMeterData.Q3_Qn_Aux;
|
|
waterMeterData.MetrologicalClassAux = meterWaterMeterData.MetrologicalClassAux;
|
|
waterMeterData.PressureLossClass = meterWaterMeterData.PressureLossClass.ToString();
|
|
waterMeterData.FlowProfileSensitivityClass =
|
|
meterWaterMeterData.FlowProfileSensitivityClass.ToString();
|
|
}
|
|
|
|
return waterMeterData;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
log.Error("toFacaseWaterMeterData()", ex);
|
|
return null;
|
|
}
|
|
}
|
|
|
|
private List<TestResults> toFacasetoFacaseWaterMeterData(Results.Entities.WaterMeter meter)
|
|
{
|
|
List<TestResults> testResultsList = new List<TestResults>();
|
|
|
|
IList<MeterTestRslt> regularMeterTestRslts = meter.RegularMeterTestRslts();
|
|
foreach (MeterTestRslt meterTestRslt in regularMeterTestRslts)
|
|
{
|
|
if (meterTestRslt != null && meterTestRslt.TestDone)
|
|
{
|
|
TestResults testResults = new TestResults(meterTestRslt);
|
|
testResultsList.Add(testResults);
|
|
}
|
|
}
|
|
|
|
return testResultsList;
|
|
}
|
|
}
|
|
} |