Files
2024-03-11 10:47:39 +01:00

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;
}
}
}