using DTS.Common.Classes; using DTS.Common.Enums.Sensors; using DTS.Common.Import.Interfaces; using Microsoft.VisualBasic.FileIO; namespace DTS.Common.Import.Parsers.CSV { public class Version6CSVTestParser : IParseCSVTest { public int Version => 6; public void ParseVersion(TextFieldParser parser, TestSetupImportData tsid) { var foundHeader = false; string[] tokens = null; while (!foundHeader && !parser.EndOfData) { tokens = parser.ReadFields(); if (null == tokens) { return; } if (0 == tokens.Length || string.IsNullOrEmpty(tokens[0])) { continue; } var field = CSVImportTags.GetTagForString(tokens[0]); var version = CSVImportTags.GetVersionForTag(field); if (version != 6) { return; } //no version 5 tokens in here ... foundHeader = true; } while (!parser.EndOfData) { var tokens2 = parser.ReadFields(); if (null == tokens2 || 0 == tokens2.Length || string.IsNullOrWhiteSpace(tokens2[1])) { //we found a new line, we are done with this table break; } var dasSerial = string.Empty; for (var i = 0; i < tokens.Length && i < tokens2.Length; i++) { var field = CSVImportTags.GetTagForString(tokens[i]); var val = tokens2[i]; switch (field) { case CSVImportTags.Tags.DASSerial: dasSerial = val; break; case CSVImportTags.Tags.DASSampleRate: { if (int.TryParse(val, out var iTemp)) { tsid.SampleRateForDAS[dasSerial] = iTemp; } } break; case CSVImportTags.Tags.PTPDomainId: { if (uint.TryParse(val, out var iTemp)) { tsid.DomainIdForDAS[dasSerial] = iTemp; } } break; case CSVImportTags.Tags.ClockMaster: { if (bool.TryParse(val, out var bTemp)) { tsid.IsClockMaster[dasSerial] = bTemp; } } break; } } } } } }