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 DoorOpsDTO { public Dictionary>> hardware { get; set; } = new Dictionary>>(); /// /// Recupera oggetto serializzato YAML oppure "semplificato" /// /// /// public string GetSerialized(bool removeDoorOps) { string answ = ""; StringBuilder sb = new StringBuilder(); List outLines = new List(); 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.Remove(item); sb.AppendLine(" "); } } answ = sb.ToString(); } else { answ = rawData; } return answ; } /// /// Restituisce conf serializzata in formato YAML /// /// public string GetObjYaml() { var serializer = new SerializerBuilder() .WithNamingConvention(CamelCaseNamingConvention.Instance) .WithIndentedSequences() .Build(); var rawdata = serializer.Serialize(this); return rawdata; } } }