/* Copyright 2017 Diversified Technical Systems */ using System; using System.Collections.Generic; using System.Linq; namespace DatabaseImport { /// /// this class will probably become an abstract base class in the future but for now since we only have /// summed realtime channels, we can be a little less formal /// public class CalculatedValueClass { public CalculatedValueClass(System.Data.DataRow dr) { var fields = Enum.GetValues(typeof(DbOperations.CalculatedChannels.Fields)) .Cast().ToArray(); foreach (var field in fields) { var o = dr[field.ToString()]; if (DBNull.Value.Equals(o)) { continue; } switch (field) { case DbOperations.CalculatedChannels.Fields.TestSetupName: TestSetupName = Convert.ToString(o); break; case DbOperations.CalculatedChannels.Fields.Operation: Operation = (Operations)Convert.ToInt32(o); break; case DbOperations.CalculatedChannels.Fields.InputChannelIds: InputChannelIdsBlob = (byte[])o; break; case DbOperations.CalculatedChannels.Fields.Id: Id = Convert.ToInt32(o); break; case DbOperations.CalculatedChannels.Fields.CFCForOutput: ChannelFilterClassForOutput = Convert.ToString(o); break; case DbOperations.CalculatedChannels.Fields.CFCForInputChannels: CFCForInputChannels = Convert.ToString(o); break; case DbOperations.CalculatedChannels.Fields.CCName: Name = Convert.ToString(o); break; case DbOperations.CalculatedChannels.Fields.CalculatedChannelValueCode: CalculatedValueCode = Convert.ToString(o); break; } } } public int Id { get; set; } = -1; public enum Operations { SUM = 1, AVERAGE = 2, IRTRACC3D = 3, IRTRACC3D_ABDOMEN = 4, IRTRACC3D_LOWERTHORAX = 5 } public Operations Operation { get; set; } = Operations.SUM; public string CalculatedValueCode { get; set; } = "???????????????X"; private List _inputChannelIds = new List(); public string[] InputChannelIds { get => _inputChannelIds.ToArray(); set => _inputChannelIds = new List(value); } public byte[] InputChannelIdsBlob { get { var text = string.Join(System.Globalization.CultureInfo.InvariantCulture.TextInfo.ListSeparator, InputChannelIds); return System.Text.Encoding.UTF8.GetBytes(text); } set { _inputChannelIds.Clear(); var text = System.Text.Encoding.UTF8.GetString(value); InputChannelIds = text.Split(new[] { System.Globalization.CultureInfo.InvariantCulture.TextInfo.ListSeparator }, StringSplitOptions.None); } } public string CFCForInputChannels { get; set; } = ""; public string ChannelFilterClassForOutput { get; set; } = ""; public string TestSetupName { get; set; } public string Name { get; set; } } }