/// /// Copyright (c) 2013-2015 Sensus Metering Systems /// using System; using System.Collections.Generic; namespace TBF.Entities { public class BenchPath : IHasItemNr, IHasValves { public virtual int Id { get; protected set; } public virtual int ItemNr { get; set; } public virtual string Name { get; set; } public virtual float Qfrom { get; set; } /// Water flow in [m3/h] public virtual float Qto { get; set; } /// Water flow in [m3/h] public virtual string TempIn { get; set; } public virtual string TempOut { get; set; } public virtual string PressIn { get; set; } public virtual string PressOut { get; set; } /// Valves public virtual string ValvesOpen { get; set; } public virtual string ValvesClose { get; set; } /// ------------- Additional stuff not mapped into the database ------------- public BenchPath() { } public BenchPath(string name, int itemNr) : this() { Name = name; ItemNr = itemNr; } public BenchPath(BenchControl.BenchPath path) : this(path.Name, path.ItemNr) { Qfrom = path.Qfrom; Qto = path.Qto; TempIn = (path.TempIn != null) ? path.TempIn.Cfg.Name : null; TempOut = (path.TempOut != null) ? path.TempOut.Cfg.Name : null; PressIn = (path.PressIn != null) ? path.PressIn.Cfg.Name : null; PressOut = (path.PressOut != null) ? path.PressOut.Cfg.Name : null; string vOpen = string.Empty; foreach (var valve in path.ValvesOpen) { if (vOpen != string.Empty) vOpen += ";"; vOpen += valve.Cfg.Name; } ValvesOpen = vOpen; string vClose = string.Empty; foreach (var valve in path.ValvesClose) { if (vClose != string.Empty) vClose += ";"; vClose += valve.Cfg.Name; } ValvesClose = vClose; } public virtual BenchPath Clone(string name, int itemNr) { BenchPath result = new BenchPath(name, itemNr); result.Qfrom = Qfrom; result.Qto = Qto; result.TempIn = TempIn; result.TempOut = TempOut; result.PressIn = PressIn; result.PressOut = PressOut; result.ValvesOpen = ValvesOpen; result.ValvesClose = ValvesClose; return result; } } }