Files
DP44/Common/DTS.Common.Import/.svn/pristine/10/100bc4e57cd9678305d8729865196b63ae3b57e2.svn-base

87 lines
3.5 KiB
Plaintext
Raw Permalink Normal View History

2026-04-17 14:55:32 -04:00
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;
}
}
}
}
}