/// /// Copyright (c) 2013-2018 Sensus Slovensko a.s. /// using System; using System.IO; using Common; namespace Config.Entities { public class ComponentProcedure { public virtual int Id { get; protected set; } public virtual string CmpntName { get; set; } /// Component name public virtual string Parameters { get; set; } public virtual Procedure Procedure { get; set; } IParamsProvider paramsProvider; /// public virtual IParamsProvider GetParamsProvider() { return paramsProvider; } public virtual void SetParamsProvider(IParamsProvider paramsProvider) { this.paramsProvider = paramsProvider; } protected ComponentProcedure() { } public ComponentProcedure(string name, string parameters, Procedure procedure) { this.CmpntName = name; this.Parameters = parameters; this.Procedure = procedure; } public virtual ComponentProcedure Clone(Procedure newProcedure) { return new ComponentProcedure(CmpntName, Parameters, newProcedure); } public virtual void Export(StreamWriter output) { output.WriteLine(CmpntName); output.WriteLine(Parameters.Replace(Environment.NewLine, "~")); } public static ComponentProcedure Import(StreamReader input, Procedure newProcedure) { string firstLine = input.ReadLine(); if (string.IsNullOrEmpty(firstLine)) return null; try { string cmptnName = firstLine; string parameters = input.ReadLine().Replace("~", Environment.NewLine); return new ComponentProcedure(cmptnName, parameters, newProcedure); } catch (Exception) { return null; } } } }