/// /// 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 Custom1 { get; set; } 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 Tests { get; set; } public virtual IList WaterMeters { get; set; } public virtual IList 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(); WaterMeters = new List(); TestRslts = new List(); } public virtual float AmbTempMean() { if (TestRslts.Count == 0) return 0; float sum = 0; foreach (var tr in TestRslts) sum += tr.AmbTempMean; return sum / TestRslts.Count; } public virtual float AmbPressMean() { if (TestRslts.Count == 0) return 0; float sum = 0; foreach (var tr in TestRslts) sum += tr.AmbPressMean; return sum / TestRslts.Count; } public virtual float AmbHumiMean() { if (TestRslts.Count == 0) return 0; float sum = 0; foreach (var tr in TestRslts) sum += tr.AmbHumiMean; return sum / TestRslts.Count; } 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); } } }