using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Xml; using DTS.Common.Enums.DBExport; using DTS.Common.Import.Interfaces; using DTS.SensorDB; namespace DTS.Common.Import.XML { public class XMLPre20ParseSensors : XMLParseBase { private readonly XMLParseSensors _xmlParseSensors; public XMLPre20ParseSensors(XmlElement root, double importedVersion, XMLParseSensors xmlParseSensors, Func isCancelled = null) : base(root, importedVersion, isCancelled) { _xmlParseSensors = xmlParseSensors; } public override void Parse(ref ImportObject importObject) { var sensors = _xmlParseSensors.ParseSensors(_root); var newRoot = MigrateSensors(sensors); importObject.AddSensors(_xmlParseSensors.ParseSensors(newRoot)); } public XmlElement MigrateSensors(IEnumerable sensors) { _writer.WriteStartElement(TopLevelFields.Sensors.ToString()); var count = -1; foreach (var sd in sensors) { sd.DatabaseId = count; count--; _writer.Flush(); sd.WriteXML(ref _writer); _writer.Flush(); } _writer.WriteEndElement(); return GetXmlElement(); } } }