45 lines
1.3 KiB
C#
45 lines
1.3 KiB
C#
///
|
|
/// Copyright (c) 2013-2017 Sensus Metering Systems
|
|
///
|
|
using System;
|
|
using System.IO;
|
|
|
|
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; }
|
|
|
|
public virtual ComponentProcedure Clone(Procedure newProcedure)
|
|
{
|
|
ComponentProcedure result = new ComponentProcedure();
|
|
result.CmpntName = CmpntName;
|
|
result.Parameters = Parameters;
|
|
result.Procedure = newProcedure;
|
|
return result;
|
|
}
|
|
|
|
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;
|
|
|
|
ComponentProcedure result = new ComponentProcedure();
|
|
result.CmpntName = firstLine;
|
|
result.Parameters = input.ReadLine().Replace("~", Environment.NewLine);
|
|
result.Procedure = newProcedure;
|
|
return result;
|
|
}
|
|
}
|
|
}
|