using DTS.Common.Classes.Sensors; using DTS.Common.Enums.Sensors; using DTS.Common.SharedResource.Strings; using System; namespace DTS.Common.Import.Parsers.CSV { public class Version3CSVSensorParser : AbstractCSVParser { public override int Version => 3; public override void ParseVersion(CSVImportTags.Tags field, string sVal, ParseParameters pp) { switch (field) { case CSVImportTags.Tags.GroupName: // check sval for empty if (string.IsNullOrEmpty(sVal) || string.IsNullOrWhiteSpace(sVal)) { pp.Errors.Add(string.Format(StringResources.ImportSensorsPreviewControl_CSVImport_NoGroupNameFound, pp.SensorData.SerialNumber)); return; } // check duplicate sd.serialnumber if (pp.SensorGroupNameLookup.ContainsKey(pp.SensorData.SerialNumber)) { pp.Errors.Add(string.Format(StringResources.ImportSensorsPreviewControl_CSVImport_DuplicateSensorSN, pp.SensorData.SerialNumber)); return; } pp.SensorGroupNameLookup.Add(pp.SensorData.SerialNumber, sVal); if (!pp.GroupNameToTestObjectLookup.ContainsKey(sVal)) { pp.GroupNameToTestObjectLookup.Add(sVal, pp.SensorTestObject); } else { if (pp.GroupNameToTestObjectLookup[sVal] != pp.SensorTestObject && !ImportCreateDynamicGroups) { var errorMessage = string.Format(StringResources.CSVImportMultipleTestObjectsInGroup, sVal); if (!pp.Errors.Contains(errorMessage)) { pp.Errors.Add(errorMessage); } throw new Exception("Parse error"); } } break; case CSVImportTags.Tags.GroupType: // check sval for empty if (string.IsNullOrEmpty(sVal) || string.IsNullOrWhiteSpace(sVal)) { pp.Errors.Add(string.Format(StringResources.ImportSensorsPreviewControl_CSVImport_NoGroupTypeFound, pp.SensorData.SerialNumber)); return; } // check duplicate sd.serialnumber if (pp.SensorGroupTypeLookup.ContainsKey(pp.SensorData.SerialNumber)) { pp.Errors.Add(string.Format(StringResources.ImportSensorsPreviewControl_CSVImport_DuplicateSensorSN, pp.SensorData.SerialNumber)); return; } pp.SensorGroupTypeLookup.Add(pp.SensorData.SerialNumber, sVal); break; case CSVImportTags.Tags.Unknown: break; default: throw new NotSupportedException("Unknown field: " + field); } } } }