using DataPROWin7.DataModel; using DTS.Common.Enums.DBExport; using DTS.Common.Import.Interfaces; using DTS.Common.Interface.Groups.GroupList; using DTS.Common.ISO; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Xml; namespace DTS.Common.Import.XML { public class XMLPre20ParseDASList : XMLParseBase { private readonly XMLParseDASList _xmlParseDASList; public XMLPre20ParseDASList(XmlElement root, double importedVersion, XMLParseDASList xmlParseDASList, Func isCancelled = null) : base(root, importedVersion, isCancelled) { _xmlParseDASList = xmlParseDASList; } public List ParsePre20DASList(XmlElement root) { List dasList = new List(); foreach (var node in root.ChildNodes) { if (node is XmlElement) { var isoHardware = DataPROWin7.DataModel.DASHardware.ReadXML(node as XmlElement); dasList.Add(new DASHardware(isoHardware)); } } return dasList; } private XmlElement MigratePre20DASList(List dasList) { _writer.WriteStartElement(TopLevelFields.DASList.ToString()); var count = -1; foreach (var h in dasList) { h.SetDASId(count); count--; _writer.Flush(); h.WriteXML(ref _writer); _writer.Flush(); } _writer.WriteEndElement(); return GetXmlElement(); } public override void Parse(ref ImportObject importObject) { var dasList = ParsePre20DASList(_root); var newRoot = MigratePre20DASList(dasList); importObject.AddHardwareList(_xmlParseDASList.ParseDASList(newRoot)); } } }