Files
DP44/Common/DTS.Common/.svn/pristine/74/74634cd06b5d20eff938d1d9f0d660a5701c2633.svn-base
2026-04-17 14:55:32 -04:00

181 lines
6.4 KiB
Plaintext

using DTS.Common.Base;
using DTS.Common.Enums;
using DTS.Common.Interface.Sensors;
using System;
using System.Data;
using System.Linq;
namespace DTS.Common.Classes.Sensors
{
public class DigitalOutDbRecord : BasePropertyChanged, IDigitalOutDbRecord
{
private string _serialNumber = "";
public string SerialNumber
{
get => _serialNumber;
set => SetProperty(ref _serialNumber, value, "SerialNumber");
}
private double _doDelay = 0D;
public double DODelay
{
get => _doDelay;
set => SetProperty(ref _doDelay, value, "DODelay");
}
private double _doDuration = 0D;
public double DODuration
{
get => _doDuration;
set => SetProperty(ref _doDuration, value, "DODuration");
}
private string _modifiedBy = "";
public string ModifiedBy
{
get => _modifiedBy;
set => SetProperty(ref _modifiedBy, value, "ModifiedBy");
}
private DateTime _lastModified = DateTime.MinValue;
public DateTime LastModified
{
get => _lastModified;
set => SetProperty(ref _lastModified, value, "LastModified");
}
private int _databaseId = -1;
public int DatabaseId
{
get => _databaseId;
set => SetProperty(ref _databaseId, value, "DatabaseId");
}
private string _isoCode = "";
public string ISOCode
{
get => _isoCode;
set => SetProperty(ref _isoCode, value, "ISOCode");
}
private string _isoChannelName = "";
public string ISOChannelName
{
get => _isoChannelName;
set => SetProperty(ref _isoChannelName, value, "ISOChannelName");
}
private string _userCode = "";
public string UserCode
{
get => _userCode;
set => SetProperty(ref _userCode, value, "UserCode");
}
private string _userChannelName = "";
public string UserChannelName
{
get => _userChannelName;
set => SetProperty(ref _userChannelName, value, "UserChannelName");
}
private bool _broken = false;
public bool Broken
{
get => _broken;
set => SetProperty(ref _broken, value, "Broken");
}
private bool _doNotUse = false;
public bool DoNotUse
{
get => _doNotUse;
set => SetProperty(ref _doNotUse, value, "DoNotUse");
}
private DigitalOutputModes _doMode = DigitalOutputModes.CCNC;
public DigitalOutputModes DOMode
{
get => _doMode;
set => SetProperty(ref _doMode, value, "DOMode");
}
private bool _limitDuration = true;
public bool LimitDuration
{
get => _limitDuration;
set => SetProperty(ref _limitDuration, value, "LimitDuration");
}
private int _version = 0;
public int Version
{
get => _version;
set => SetProperty(ref _version, value, "Version");
}
private byte[] _tagsBlobBytes = null;
public byte[] TagsBlobBytes
{
get => _tagsBlobBytes;
set => SetProperty(ref _tagsBlobBytes, value, "TagsBlobBytes");
}
public DigitalOutDbRecord()
{
}
public DigitalOutDbRecord(ISensorData copy, byte[] tagsBlobBytes)
{
SerialNumber = copy.SerialNumber;
DatabaseId = copy.DatabaseId;
Broken = copy.Broken;
DoNotUse = copy.DoNotUse;
Version = copy.Version;
DOMode = copy.DigitalOutputMode;
LimitDuration = copy.DigitalOutputLimitDuration;
ModifiedBy = copy.LastUpdatedBy;
LastModified = copy.LastModified;
DODuration = copy.DigitalOutputDurationMS;
DODelay = copy.DigitalOutputDelayMS;
if (null == tagsBlobBytes)
{
TagsBlobBytes = null;
}
else if (tagsBlobBytes.Any())
{
var bytes = new byte[tagsBlobBytes.Length];
Array.Copy(tagsBlobBytes, bytes, tagsBlobBytes.Length);
TagsBlobBytes = bytes;
}
else { TagsBlobBytes = new byte[0]; }
}
public DigitalOutDbRecord(IDigitalOutDbRecord copy)
{
SerialNumber = copy.SerialNumber;
DatabaseId = copy.DatabaseId;
Broken = copy.Broken;
DoNotUse = copy.DoNotUse;
Version = copy.Version;
DOMode = copy.DOMode;
LimitDuration = copy.LimitDuration;
ModifiedBy = copy.ModifiedBy;
LastModified = copy.LastModified;
DODuration = copy.DODuration;
DODelay = copy.DODelay;
if (null == copy.TagsBlobBytes)
{
TagsBlobBytes = null;
}
else if (copy.TagsBlobBytes.Any())
{
var tagsBlobBytes = new byte[copy.TagsBlobBytes.Length];
Array.Copy(copy.TagsBlobBytes, tagsBlobBytes, copy.TagsBlobBytes.Length);
TagsBlobBytes = tagsBlobBytes;
}
else { TagsBlobBytes = new byte[0]; }
}
public DigitalOutDbRecord(IDataReader reader)
{
DatabaseId = Utility.GetInt(reader, "Id", -1);
Broken = Utility.GetBool(reader, "Broken", false);
DoNotUse = Utility.GetBool(reader, "DoNotUse");
SerialNumber = Utility.GetString(reader, "SerialNumber");
Version = Utility.GetInt(reader, "Version");
DOMode = (DigitalOutputModes)Utility.GetInt(reader, "OutputMode");
LimitDuration = Utility.GetBool(reader, "LimitDuration", true);
ModifiedBy = Utility.GetString(reader, "LastModifiedBy", string.Empty);
LastModified = Utility.GetDateTime(reader, "LastModified", DateTime.MinValue);
DODuration = Utility.GetDouble(reader, "DurationMSFloat");
DODelay = Utility.GetDouble(reader, "DelayMS");
TagsBlobBytes = (byte[])reader["UserTags"];
}
}
}