tbf/Results/Entities/Batch.cs

119 lines
3.6 KiB
C#
Raw Normal View History

///
/// Copyright (c) 2015-2016 Sensus Metering Systems
///
using System;
using System.Collections.Generic;
namespace Results.Entities
{
public class Batch
{
public virtual int Id { get; protected set; }
public virtual int BatchNr { get; set; }
public virtual int TestBenchId { get; set; }
public virtual string ProgramVersion { get; set; }
public virtual string UserName { get; set; }
public virtual int UserNumber { get; set; }
public virtual string ProcedureName { get; set; }
public virtual string ProcedureDescription { get; set; } /// CEVAK, not mapped to DB
public virtual int ProcedureRevision { get; set; }
public virtual string WatermetersStr { get; set; } /// CEVAK, not mapped to DB
public virtual string ProtocolTitle { get; set; }
public virtual string Remark { get; set; }
public virtual float DensityCorr { get; set; } /// Density correction in [kg/m3]
public virtual float Custom2 { get; set; }
public virtual float Custom3 { get; set; }
public virtual DateTime StartTime { get; set; }
public virtual DateTime EndTime { get; set; }
public virtual bool Dirty { get; set; }
public virtual bool RsltsSent { get; set; }
public virtual bool RsltsPrinted { get; set; }
public virtual IList<TestData> Tests { get; set; }
public virtual IList<WaterMeter> WaterMeters { get; set; }
public virtual IList<TestRslt> TestRslts { get; set; }
public virtual bool Compound { get; set; } /// Not mapped to DB now
public virtual bool HeatMeter { get; set; } /// Not mapped to DB now
public Batch()
{
Tests = new List<TestData>();
WaterMeters = new List<WaterMeter>();
TestRslts = new List<TestRslt>();
}
public virtual double AmbTempMean()
{
double timeSum = 0;
double sum = 0;
foreach (var tr in TestRslts)
{
double time = (tr.EndTime - tr.StartTime).TotalSeconds;
timeSum += time;
sum += (tr.AmbTempMean * time);
}
return (timeSum == 0) ? 0 : (sum / timeSum);
}
public virtual double AmbPressMean()
{
double timeSum = 0;
double sum = 0;
foreach (var tr in TestRslts)
{
double time = (tr.EndTime - tr.StartTime).TotalSeconds;
timeSum += time;
sum += (tr.AmbPressMean * time);
}
return (timeSum == 0) ? 0 : (sum / timeSum);
}
public virtual double AmbHumiMean()
{
double timeSum = 0;
double sum = 0;
foreach (var tr in TestRslts)
{
double time = (tr.EndTime - tr.StartTime).TotalSeconds;
timeSum += time;
sum += (tr.AmbHumiMean * time);
}
return (timeSum == 0) ? 0 : (sum / timeSum);
}
public virtual double Buoyancy()
{
double timeSum = 0;
double sum = 0;
foreach (var tr in TestRslts)
{
double time = (tr.EndTime - tr.StartTime).TotalSeconds;
timeSum += time;
sum += (tr.Buoyancy * time);
}
return (timeSum == 0) ? 0 : (sum / timeSum);
}
public virtual TestRslt GetTestRslt(string name, int part)
{
foreach (var tr in TestRslts)
{
if (part == tr.Part && name.Equals(tr.Name())) return tr;
}
return null;
}
public override string ToString()
{
return string.Format("Batch #{0}, Start:{1}, End:{2}, Procedure:{3}", BatchNr, StartTime, EndTime, ProcedureName);
}
}
}