Files
2023-05-15 09:59:24 +02:00

133 lines
4.2 KiB
C#

using System.Text;
using WebDoorCreator.Data.DbModels;
using YamlDotNet.Serialization;
using YamlDotNet.Serialization.NamingConventions;
namespace WebDoorCreator.Data.DTO
{
[Serializable]
public class DDFDto
{
#region Public Constructors
public DDFDto()
{ }
#endregion Public Constructors
#region Public Properties
public string version { get; set; } = "0";
public bool produce { get; set; } = true;
public string measures { get; set; } = "inches";
public string code { get; set; } = "0015943";
public OrderDto order { get; set; } = new OrderDto();
public DateTime date { get; set; } = DateTime.Today.Date;
public string piece { get; set; } = "DO_1";
#endregion Public Properties
#region Public Methods
/// <summary>
/// Restituisce conf serializzata in formato YAML
/// </summary>
/// <returns></returns>
public string GetObjYaml()
{
var serializer = new SerializerBuilder()
.WithNamingConvention(CamelCaseNamingConvention.Instance)
.Build();
var rawdata = serializer.Serialize(this);
return rawdata;
}
/// <summary>
/// Scrive conf serializzata in formato YAML
/// </summary>
/// <param name="headRows"></param>
/// <param name="footRows"></param>
/// <param name="serialDoorOps"></param>
/// <param name="serialEdges"></param>
/// <param name="serialSize"></param>
/// <param name="serialSwing"></param>
/// <param name="serialProperties"></param>
/// <returns></returns>
public string GetSerialized(List<string> headRows, List<string> footRows, string serialDoorOps, string serialEdges, string serialSize, string serialSwing, string serialProperties, string serialFinishing)
{
string fullData = "";
StringBuilder sb = new StringBuilder();
try
{
// header!
if (headRows != null && headRows.Count > 0)
{
sb = new StringBuilder();
foreach (var row in headRows)
{
sb.AppendLine(row);
}
fullData = sb.ToString();
}
// obj principale
var currYaml = GetObjYaml();
fullData += currYaml;
#if false
// aggiungo la parte woodType come yaml reale/striped...
if (!string.IsNullOrEmpty(serialProperties))
{
fullData += serialProperties;
}
// aggiungo la parte finishing come yaml reale/striped...
if (!string.IsNullOrEmpty(serialFinishing))
{
fullData += serialFinishing;
}
#endif
// aggiungo la parte size come yaml reale/striped...
if (!string.IsNullOrEmpty(serialSize))
{
fullData += serialSize;
}
// aggiungo la parte swing come yaml reale/striped...
if (!string.IsNullOrEmpty(serialSwing))
{
fullData += serialSwing;
}
// aggiungo la parte profiles come yaml reale/striped...
if (!string.IsNullOrEmpty(serialEdges))
{
fullData += serialEdges;
}
// aggiungo la parte doorOp come yaml reale/striped...
if (!string.IsNullOrEmpty(serialDoorOps))
{
fullData += serialDoorOps;
}
// footer!
if (footRows != null && footRows.Count > 0)
{
sb = new StringBuilder();
foreach (var row in footRows)
{
sb.AppendLine(row);
}
fullData += sb.ToString();
}
}
catch
{ }
return fullData;
}
#endregion Public Methods
}
}