/// /// Copyright (c) 2013-2023 Sensus Slovensko a.s. /// using System; using System.IO; using System.Xml.Serialization; using Common; using Config.Entities; using TBF.Rig.Generic; using TBF.Resources; namespace TBF.Rig.TestMethods.FlyingStartMassCollection.Compound { public class CombinedTestParams : TestParamsBase, IParamsProvider, ITestParams { public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(CombinedTestParams) })[0]; public override XmlSerializer GetSerializer() { return Serializer; } public bool DelayedStart; /// true = Test start (=gating pulses from meters) is delayed by 2 s public bool SupressTrills; /// true = Main meter readings are ignored during test (suitable for small flows) public override void InitializeAll() { DelayedStart = false; SupressTrills = false; } string[] paramNames = new string[] { "Delayed start", Strings.SupressWMTrills, }; public override string ParamName(int i) { return paramNames[i]; } public override int ParamsCount() { return paramNames.Length; } public override string ToString(int i) { switch (i) { case 0: return DelayedStart ? Strings.yes : Strings.no; case 1: return SupressTrills ? Strings.yes : Strings.no; default: return string.Empty; } } public CfgUpdateFlags UpdateParam(int i, string str) { switch (i) { case 0: DelayedStart = str.Equals(Strings.yes); return CfgUpdateFlags.None; case 1: SupressTrills = str.Equals(Strings.yes); return CfgUpdateFlags.None; default: return CfgUpdateFlags.None; } } public bool ValidateParam(int i, string str, out string message) { message = string.Empty; switch (i) { case 0: case 1: if (str.Equals(Strings.yes) || str.Equals(Strings.no)) return true; break; default: message = "Invalid index"; return false; } message = ParamName(i) + " is invalid"; return false; } void CopyContentTo(CombinedTestParams prms) { prms.DelayedStart = DelayedStart; prms.SupressTrills = SupressTrills; } public IParamsProvider Clone() { CombinedTestParams pars = new CombinedTestParams(); CopyContentTo(pars); return pars; } public override void UpdateFromDbEntity(ComponentTest dbEntity) { if (dbEntity == null) return; try { CombinedTestParams tmp = Serializer.Deserialize(new StringReader(dbEntity.Parameters)) as CombinedTestParams; testParamsEntity = dbEntity; componentName = dbEntity.CmpntName; test = dbEntity.Test; if (tmp != null) tmp.CopyContentTo(this); } catch { } } /// /// Parameterless constructor initializes the parameters /// public CombinedTestParams() { } public CombinedTestParams(bool initialize) { if (initialize) InitializeAll(); } public CombinedTestParams(ComponentTest testParamsEntity, string componentName, Test test) { this.testParamsEntity = testParamsEntity; this.componentName = componentName; this.test = test; } } }