using System; using System.Linq; namespace DatabaseExport { /// /// this is a class for storing directly in and out of the db /// it's simplified and doesn't know about sensors and is just a wrapper for a row in the db /// public class LevelTriggerChannel { public string TestSetupName { get; set; } = ""; public string GroupSerialNumber { get; set; } = ""; public string TestObjectChannelId { get; set; } = ""; public string HardwareChannelId { get; set; } = ""; public string SensorSerialNumber { get; set; } = ""; public bool GreaterThanEnabled { get; set; } = true; public double GreaterThanThresholdEU { get; set; } = 0D; public bool LessThanEnabled { get; set; } = false; public bool TriggerBetweenBounds { get; set; } = false; public bool TriggerOutsideBounds { get; set; } = false; public double InsideUpperLevelEU { get; set; } = 0D; public double InsideLowerLevelEU { get; set; } = 0D; public double OutsideUpperLevelEU { get; set; } = 0D; public double OutsideLowerLevelEU { get; set; } = 0D; public double LessThanThresholdEU { get; set; } = 0D; public LevelTriggerChannel(LevelTriggerChannel copy) { TestSetupName = copy.TestSetupName; GroupSerialNumber = copy.GroupSerialNumber; TestObjectChannelId = copy.TestObjectChannelId; HardwareChannelId = copy.HardwareChannelId; SensorSerialNumber = copy.SensorSerialNumber; GreaterThanEnabled = copy.GreaterThanEnabled; GreaterThanThresholdEU = copy.GreaterThanThresholdEU; LessThanEnabled = copy.LessThanEnabled; LessThanThresholdEU = copy.LessThanThresholdEU; InsideUpperLevelEU = copy.InsideUpperLevelEU; InsideLowerLevelEU = copy.InsideLowerLevelEU; OutsideUpperLevelEU = copy.OutsideUpperLevelEU; OutsideLowerLevelEU = copy.OutsideLowerLevelEU; TriggerBetweenBounds = copy.TriggerBetweenBounds; TriggerOutsideBounds = copy.TriggerOutsideBounds; } public LevelTriggerChannel(System.Data.DataRow dr) { var fields = Enum.GetValues(typeof(DbOperations.LevelTriggers.Fields)) .Cast().ToArray(); foreach (var field in fields) { try { var o = dr[field.ToString()]; if (DBNull.Value.Equals(o)) { continue; } switch (field) { case DbOperations.LevelTriggers.Fields.GreaterThanEnabled: GreaterThanEnabled = Convert.ToBoolean(o); break; case DbOperations.LevelTriggers.Fields.GreaterThanEU: GreaterThanThresholdEU = Convert.ToDouble(o); break; case DbOperations.LevelTriggers.Fields.GroupSerialNumber: GroupSerialNumber = Convert.ToString(o); break; case DbOperations.LevelTriggers.Fields.HardwareChannelId: HardwareChannelId = Convert.ToString(o); break; case DbOperations.LevelTriggers.Fields.LessThanEnabled: LessThanEnabled = Convert.ToBoolean(o); break; case DbOperations.LevelTriggers.Fields.LessThanEU: LessThanThresholdEU = Convert.ToDouble(o); break; case DbOperations.LevelTriggers.Fields.SensorSerialNumber: SensorSerialNumber = Convert.ToString(o); break; case DbOperations.LevelTriggers.Fields.TestObjectChannelId: TestObjectChannelId = Convert.ToString(o); break; case DbOperations.LevelTriggers.Fields.TestSetupName: TestSetupName = Convert.ToString(o); break; case DbOperations.LevelTriggers.Fields.TriggerInside: TriggerBetweenBounds = Convert.ToBoolean(o); break; case DbOperations.LevelTriggers.Fields.TriggerOutside: TriggerOutsideBounds = Convert.ToBoolean(o); break; case DbOperations.LevelTriggers.Fields.OutsideUpperEU: OutsideUpperLevelEU = Convert.ToDouble(o); break; case DbOperations.LevelTriggers.Fields.OutsideLowerEU: OutsideLowerLevelEU = Convert.ToDouble(o); break; case DbOperations.LevelTriggers.Fields.InsideUpperEU: InsideUpperLevelEU = Convert.ToDouble(o); break; case DbOperations.LevelTriggers.Fields.InsideLowerEU: InsideLowerLevelEU = Convert.ToDouble(o); break; default: throw new NotSupportedException("unknown level trigger field: " + field.ToString()); } } catch (Exception) { /*DTS.Utilities.Logging.APILogger.Log(ex);*/ } } } } }