using System.Collections.Generic; namespace DTS.Serialization.DDAS { public class DDASTest { public enum Fields { LabName, POCName, POCPhoneAndEmail, TestDate, TestTime, TestNumber, TestType, TestObject, DataType, SensorMakeModelSerial, SensorLocation, SensorAxis, SensorMountType, EngineeringUnits, ChannelErrors, SamplingRate, AAFilterCutoffDescription, BitResolution, DigitalFilterType, Notes } private readonly Dictionary _values = new Dictionary(); public string GetValue(Fields field) { if (!_values.ContainsKey(field)) _values.Add(field, "#NOVALUE"); return _values[field]; } public void SetValue(Fields field, string value) { _values[field] = value; foreach (var channel in _channels) channel.SetValue(field, value); } private readonly List _channels = new List(); public DDASChannel[] Channels { get => _channels.ToArray(); set { _channels.Clear(); _channels.AddRange(value); } } public Test Test { get; } public FilteredData[] DataUnfilteredEU { get; } public FilteredData[] DataADC { get; } public double[] ActualRangesEUFiltered { get; } public double[] ActualRangesEUUnfiltered { get; } public double[] ActualRangesADC { get; } public bool FlatFolders { get; } public DDASTest(Test test, FilteredData[] adc, FilteredData[] euUnfiltered, string path, double[] actualRangesEUFiltered, double[] actualRangesEUUnfiltered, double[] actualRAngesADC, bool flatFolders) { Test = test; DataADC = adc; DataUnfilteredEU = euUnfiltered; ActualRangesADC = actualRAngesADC; ActualRangesEUUnfiltered = actualRangesEUUnfiltered; ActualRangesEUFiltered = actualRangesEUFiltered; FlatFolders = flatFolders; for (var i = 0; i < test.Channels.Count && i < DataADC.Length; i++) _channels.Add(new DDASChannel(this, i, path)); SetValue(Fields.TestNumber, test.Id); SetValue(Fields.TestDate, test.InceptionDate.ToShortDateString()); SetValue(Fields.TestTime, test.InceptionDate.ToShortTimeString()); } } }