95 lines
2.9 KiB
C#
95 lines
2.9 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Xml;
|
|
using Config.Entities;
|
|
using log4net;
|
|
|
|
namespace TBF.Rig.Output.Printers.GroupPrinting.Single
|
|
{
|
|
public class PrinterDef
|
|
{
|
|
static readonly ILog log = LogManager.GetLogger(typeof(PrinterCfgCtrl));
|
|
public String Name { get; set; }
|
|
public String ObjName { get; set; }
|
|
|
|
public override bool Equals(object obj)
|
|
{
|
|
if (obj == null || !(obj is PrinterDef))
|
|
{
|
|
return false;
|
|
}
|
|
|
|
return Name.Equals(((PrinterDef)obj).Name) &&
|
|
ObjName.Equals(((PrinterDef)obj).ObjName);
|
|
}
|
|
|
|
public override string ToString()
|
|
{
|
|
return $"{Name}:{ObjName}";
|
|
}
|
|
|
|
public Component toComponent(IList<Component> components)
|
|
{
|
|
foreach (Component component in components)
|
|
{
|
|
if (component.Name.Equals(Name) && component.ClassName.Equals(ObjName))
|
|
{
|
|
return component;
|
|
}
|
|
}
|
|
|
|
return null;
|
|
}
|
|
|
|
public static PrinterDef fromString(string formated)
|
|
{
|
|
try
|
|
{
|
|
PrinterDef printerDef = new PrinterDef();
|
|
string[] spliteStrings = formated.Split(':');
|
|
printerDef.Name = spliteStrings[0];
|
|
printerDef.ObjName = spliteStrings[1];
|
|
return printerDef;
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
log.Error(e.StackTrace);
|
|
}
|
|
|
|
return null;
|
|
}
|
|
|
|
public static List<PrinterDef> fromParametersString(string parameters)
|
|
{
|
|
List<PrinterDef> printerDefs = new List<PrinterDef>();
|
|
// we have group printer
|
|
XmlDocument xmlDocument = new XmlDocument();
|
|
xmlDocument.LoadXml(parameters);
|
|
XmlNodeList printerCfg = xmlDocument.GetElementsByTagName("ItemsToPrint");
|
|
// Extract the text content of each <string> element within ItemsToPrint
|
|
List<string> itemsToPrint = new List<string>();
|
|
|
|
foreach (XmlNode itemNode in printerCfg)
|
|
{
|
|
// Process each "ItemsToPrint" element here
|
|
foreach (XmlNode itemToPrint in itemNode.ChildNodes)
|
|
{
|
|
if (itemToPrint.NodeType == XmlNodeType.Element && itemToPrint.Name == "string")
|
|
{
|
|
printerDefs.Add(PrinterDef.fromString(itemToPrint.InnerText));
|
|
}
|
|
}
|
|
}
|
|
|
|
return printerDefs;
|
|
}
|
|
|
|
public static PrinterDef fromComponent(Component component)
|
|
{
|
|
PrinterDef printerDef = new PrinterDef();
|
|
printerDef.Name = component.Name;
|
|
printerDef.ObjName = component.ClassName;
|
|
return printerDef;
|
|
}
|
|
}
|
|
} |