using DTS.Common.Enums.DBExport; using DTS.Common.Import.Interfaces; using DTS.Common.Interface.Groups.GroupList; 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 XMLParseTestEngineerDetails : XMLParseBase { public XMLParseTestEngineerDetails(XmlElement root, double importedVersion, Func isCancelled = null) : base(root, importedVersion, isCancelled) { } public IImportNotification ImportNotification { get; set; } public override void Parse(ref ImportObject importObject) { var details = ParseTestEngineerDetails(_root); var newRoot = ConvertTestEngineerDetails(details); details = ParseTestEngineerDetails(newRoot); importObject.AddTestEngineerDetailsList(details); } private XmlElement ConvertTestEngineerDetails(IEnumerable details) { _writer.WriteStartElement(TopLevelFields.TestEngineerDetails.ToString()); foreach (var c in details) { _writer.Flush(); c.WriteXML(ref _writer); _writer.Flush(); } _writer.WriteEndElement(); return GetXmlElement(); } private List ParseTestEngineerDetails(XmlElement root) { List details = new List(); foreach (var node in root.ChildNodes) { if (IsCancelled()) { return details; } if (node is XmlElement) { details.Add(ISO.TestEngineerDetails.ReadXML(node as XmlElement)); } } return details; } } }