using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using YamlDotNet.Serialization.NamingConventions; using YamlDotNet.Serialization; using System.Diagnostics; namespace WebDoorCreator.Data.DTO { [Serializable] public class SizeDto { public Dictionary> size { 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("Size") && !item.Contains("Properties")) { if (item.StartsWith(" ")) { //sb.AppendLine(item.Substring(2)); sb.AppendLine($" {char.ToLower(item.Substring(4)[0])}{item.Substring(5)}"); } else { sb.AppendLine(item); } } } 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; } } }