/// /// Copyright (c) 2019 Sensus Slovensko a.s. /// using System; using System.Collections.Generic; using log4net; using Config.Entities; namespace TBF.BenchControl.TestMethods.Q2CorrectionFromHistory { public class Component : ComponentBase, GenericDevices.ISimultTestMethod { private static readonly ILog log = LogManager.GetLogger(typeof(Component)); public override string ToString() { return string.Format("{0}({1})", ClassName, Cfg.ToString(-1)); } public bool CanTest(MetersKind meters) { return true; } public bool DoTransitions() { return false; } readonly FromHistoryCfg myCfg; public bool SimultWithPrevious { get { return false; } } public bool SimultWithNext { get { return false; } } #region Configuration Change Handling public static void OnCfgChange(object sender, CfgChangeArgs args) { if (CfgChangeHandler == null) return; try { CfgChangeHandler(sender, args); } catch (Exception e) { log.Error("CfgChangeHandler(...) failed", e); } } public static event EventHandler CfgChangeHandler; public override void StartChangeHandler() { CfgChangeHandler += delegate(object sender, CfgChangeArgs args) { FromHistoryCfg tmpcfg = args.Cfg as FromHistoryCfg; if (tmpcfg != null && tmpcfg.Name.Equals(Name)) { if (args.Command == CfgChangeCmd.CfgChange) { myCfg.UseWebService = tmpcfg.UseWebService; myCfg.BaseUrl = tmpcfg.BaseUrl; myCfg.RelativeUrl = tmpcfg.RelativeUrl; myCfg.UseLocalDB = tmpcfg.UseLocalDB; myCfg.ProcedureName = tmpcfg.ProcedureName; myCfg.ProcedureNameAlt1 = tmpcfg.ProcedureNameAlt1; myCfg.ProcedureNameAlt2 = tmpcfg.ProcedureNameAlt2; myCfg.UseDefaultValues = tmpcfg.UseDefaultValues; } } }; } #endregion Configuration Change Handling public Component() { } public Component(Generic.IComponentCfg cfg) : base(cfg) { myCfg = cfg as FromHistoryCfg; } public override void Initialize() { log.FatalFormat("{0} initialized: {1}", Name, this); } public IList Execute(Test test, int repetitionNr, bool isLastRepetition) { return (new FromHistorySeq()).Execute(test, repetitionNr, myCfg); } } }