2015-04-15 18:32:56 +00:00
|
|
|
|
///
|
2019-01-25 11:52:05 +00:00
|
|
|
|
/// Copyright (c) 2013-2018 Sensus Slovensko a.s.
|
2015-04-15 18:32:56 +00:00
|
|
|
|
///
|
2019-01-25 11:52:05 +00:00
|
|
|
|
using System;
|
2015-04-15 18:32:56 +00:00
|
|
|
|
using System.Collections.Generic;
|
2019-01-25 11:52:05 +00:00
|
|
|
|
using System.Globalization;
|
|
|
|
|
|
using System.IO;
|
2014-07-28 07:54:35 +00:00
|
|
|
|
|
2015-12-04 16:17:20 +00:00
|
|
|
|
namespace Config.Entities
|
2014-07-28 07:54:35 +00:00
|
|
|
|
{
|
|
|
|
|
|
/// <summary>
|
2014-09-07 15:01:30 +00:00
|
|
|
|
/// Stores one transition sequence containing a list of transition steps
|
2014-07-28 07:54:35 +00:00
|
|
|
|
/// </summary>
|
2017-06-29 14:58:59 +00:00
|
|
|
|
public class TransitionSequence : IHasName, IHasItemNr
|
2014-07-28 07:54:35 +00:00
|
|
|
|
{
|
|
|
|
|
|
public virtual int Id { get; protected set; }
|
|
|
|
|
|
public virtual int ItemNr { get; set; }
|
|
|
|
|
|
public virtual string Name { get; set; }
|
2017-05-25 14:33:44 +00:00
|
|
|
|
public virtual string OriName { get; set; } /// Not mapped to database
|
|
|
|
|
|
public virtual string Description { get; set; } /// Short description
|
2014-07-28 07:54:35 +00:00
|
|
|
|
public virtual IList<TransitionStep> TransitionSteps { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
public TransitionSequence()
|
|
|
|
|
|
{
|
|
|
|
|
|
TransitionSteps = new List<TransitionStep>();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public TransitionSequence(string name, int itemNr)
|
|
|
|
|
|
: this()
|
|
|
|
|
|
{
|
|
|
|
|
|
Name = name;
|
|
|
|
|
|
ItemNr = itemNr;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public virtual TransitionSequence Clone()
|
|
|
|
|
|
{
|
|
|
|
|
|
TransitionSequence result = new TransitionSequence();
|
|
|
|
|
|
result.Name = Name;
|
|
|
|
|
|
result.Description = Description;
|
|
|
|
|
|
foreach (var step in TransitionSteps) { result.TransitionSteps.Add(step.Clone()); }
|
|
|
|
|
|
return result;
|
|
|
|
|
|
}
|
2019-01-25 11:52:05 +00:00
|
|
|
|
|
|
|
|
|
|
public virtual void Export(StreamWriter output)
|
|
|
|
|
|
{
|
|
|
|
|
|
output.WriteLine(ItemNr.ToString(CultureInfo.InvariantCulture));
|
|
|
|
|
|
output.WriteLine(Name);
|
|
|
|
|
|
output.WriteLine(Description);
|
|
|
|
|
|
|
|
|
|
|
|
foreach (var step in TransitionSteps) { step.Export(output); }
|
|
|
|
|
|
output.WriteLine();
|
|
|
|
|
|
|
|
|
|
|
|
output.Close();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public static TransitionSequence Import(StreamReader input)
|
|
|
|
|
|
{
|
|
|
|
|
|
TransitionSequence result = new TransitionSequence();
|
|
|
|
|
|
|
|
|
|
|
|
result.ItemNr = int.Parse(input.ReadLine(), CultureInfo.InvariantCulture);
|
|
|
|
|
|
result.Name = input.ReadLine();
|
|
|
|
|
|
result.Description = input.ReadLine();
|
|
|
|
|
|
|
|
|
|
|
|
while (true)
|
|
|
|
|
|
{
|
|
|
|
|
|
TransitionStep step = TransitionStep.Import(input, result);
|
|
|
|
|
|
if (step == null)
|
|
|
|
|
|
break;
|
|
|
|
|
|
else
|
|
|
|
|
|
result.TransitionSteps.Add(step);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return result;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public virtual string Compare(StreamReader inp)
|
|
|
|
|
|
{
|
|
|
|
|
|
System.Text.StringBuilder diff = new System.Text.StringBuilder();
|
|
|
|
|
|
const string fmt = "{0} = {1}\r\n (in the file {2})\r\n";
|
|
|
|
|
|
string ln;
|
|
|
|
|
|
|
|
|
|
|
|
ln = inp.ReadLine(); /// skip ItemNr
|
|
|
|
|
|
ln = inp.ReadLine(); if (ln != Name) { diff.AppendFormat(fmt, "Name", Name, ln); };
|
|
|
|
|
|
ln = inp.ReadLine(); if (ln != Description) { diff.AppendFormat(fmt, "Description", Description, ln); };
|
|
|
|
|
|
|
|
|
|
|
|
//foreach (var step in TransitionSteps)
|
|
|
|
|
|
//{
|
|
|
|
|
|
// string testDiff = step.Compare(inp);
|
|
|
|
|
|
// if (testDiff.Contains(
|
|
|
|
|
|
//}
|
|
|
|
|
|
|
|
|
|
|
|
return diff.ToString();
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2014-07-28 07:54:35 +00:00
|
|
|
|
}
|