using DTS.Common.Classes; using DTS.Common.Enums.Sensors; using DTS.Common.Import.Interfaces; using Microsoft.VisualBasic.FileIO; using System; namespace DTS.Common.Import.Parsers.CSV { public class Version5CSVTestParser : IParseCSVTest { public int Version => 5; 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 != 5) { return; } //no version 5 tokens in here ... foundHeader = true; } var tokens2 = parser.ReadFields(); for (var i = 0; null != tokens2 && i < tokens.Length && i < tokens2.Length; i++) { var field = CSVImportTags.GetTagForString(tokens[i]); var val = tokens2[i]; switch (field) { case CSVImportTags.Tags.ClockMasterInputType: { if (Enum.TryParse(val, out InputClockSource source)) { tsid.ClockMasterInput = source; } } break; case CSVImportTags.Tags.ClockMasterOutputType: { if (Enum.TryParse(val, out OutputClockSource source)) { tsid.ClockMasterOutput = source; } } break; case CSVImportTags.Tags.ManageClocksOutsideDPMaster: { if (bool.TryParse(val, out var bTemp)) { tsid.ManageClocksOutsideOfDataPROMaster = bTemp; } } break; case CSVImportTags.Tags.ManageClocksOutsideDPSlave: { if (bool.TryParse(val, out var bTemp)) { tsid.ManageClocksOutsideOfDataPROSlave = bTemp; } } break; case CSVImportTags.Tags.ClockSlaveInputType: { if (Enum.TryParse(val, out OutputClockSource source)) { tsid.ClockSlaveInput = source; } } break; case CSVImportTags.Tags.ClockSlaveOutputType: { if (Enum.TryParse(val, out OutputClockSource source)) { tsid.ClockSlaveOutput = source; } } break; } } } } }