65 lines
2.0 KiB
C#
65 lines
2.0 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using YamlDotNet.Serialization.NamingConventions;
|
|
using YamlDotNet.Serialization;
|
|
|
|
namespace WebDoorCreator.Data.DTO
|
|
{
|
|
[Serializable]
|
|
public class EdgesDto
|
|
{
|
|
public Dictionary<string, Dictionary<string, string>> profiles { get; set; } = new Dictionary<string, Dictionary<string, string>>();
|
|
|
|
/// <summary>
|
|
/// Recupera oggetto serializzato YAML oppure "semplificato"
|
|
/// </summary>
|
|
/// <param name="removeDoorOps"></param>
|
|
/// <returns></returns>
|
|
public string GetSerialized(bool removeDoorOps)
|
|
{
|
|
string answ = "";
|
|
StringBuilder sb = new StringBuilder();
|
|
List<string> outLines = new List<string>();
|
|
string rawData = GetObjYaml();
|
|
if (removeDoorOps)
|
|
{
|
|
var lines = rawData.Split(Environment.NewLine);
|
|
foreach (var item in lines)
|
|
{
|
|
if (item.Length > 2 && !item.Contains("Separator"))
|
|
{
|
|
sb.AppendLine(item);
|
|
}
|
|
if (item.Contains("Separator"))
|
|
{
|
|
sb.AppendLine(" ");
|
|
}
|
|
}
|
|
answ = sb.ToString();
|
|
}
|
|
else
|
|
{
|
|
answ = rawData;
|
|
}
|
|
return answ;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Restituisce conf serializzata in formato YAML
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public string GetObjYaml()
|
|
{
|
|
var serializer = new SerializerBuilder()
|
|
.WithNamingConvention(CamelCaseNamingConvention.Instance)
|
|
.WithIndentedSequences()
|
|
.Build();
|
|
var rawdata = serializer.Serialize(this);
|
|
return rawdata;
|
|
}
|
|
}
|
|
}
|