| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 | using System;using InABox.Core;namespace Comal.Classes{    [UserTracking("GPS Tracking")]    public class GPSTracker : Entity, IPersistent, IRemotable, ILicense<GPSTrackerLicense>, IExportable, IImportable    {        [EditorSequence(1)]        [UniqueCodeEditor(Editable = Editable.Enabled)]        public string DeviceID { get; set; }        [EditorSequence(2)]        [TextBoxEditor]        public string Description { get; set; }        [EditorSequence(3)]        [EntityRelationship(DeleteAction.SetNull)]        public GPSTrackerTypeLink Type { get; set; }        [EditorSequence(4)]        [EnumLookupEditor(typeof(GPSTrackerDeviceType), LookupWidth = 150)]        public GPSTrackerDeviceType DeviceType { get; set; } = GPSTrackerDeviceType.Unknown;        [EditorSequence(5)]        [DurationEditor]        [Caption("Min Time")]        public TimeSpan TimeThreshold { get; set; } = new TimeSpan(0, 2, 0);        [EditorSequence(6)]        [IntegerEditor]        [Caption("Min Distance (m)")]        public int DistanceThreshhold { get; set; } = 100;        [EditorSequence(7)]        [EntityRelationship(DeleteAction.SetNull)]        public EquipmentLink Equipment { get; set; }        [EditorSequence(8)]        [EntityRelationship(DeleteAction.SetNull)]        public JobTrackerLink JobTracker { get; set; }        [EditorSequence("Additional", 1)]        [DoubleEditor]        public double BatteryLevel { get; set; }        [EditorSequence("Additional", 2)]        [DoubleEditor]        public double Hours { get; set; }        [EditorSequence("Additional", 3)]        [DoubleEditor]        public double Distance { get; set; }        [EditorSequence("Additional", 4)]        [DoubleEditor]        public double Counter1 { get; set; }        [EditorSequence("Additional", 5)]        [DoubleEditor]        public double Counter2 { get; set; }        [EditorSequence("Additional", 6)]        [DoubleEditor]        public double Counter3 { get; set; }        [EditorSequence("Additional", 7)]        [DoubleEditor]        public double Counter4 { get; set; }        [EditorSequence("Additional", 8)]        [DoubleEditor]        public double Counter5 { get; set; }        public Location Location { get; set; }        public override string ToString()        {            return string.Format("{0}: {1} ({2})", DeviceID, Description, DeviceType);        }        protected override void DoPropertyChanged(string name, object? before, object? after)        {            base.DoPropertyChanged(name, before, after);            if (string.Equals(name, "DeviceType"))            {                DistanceThreshhold = GPSTrackerDeviceDefaults.Distance[(GPSTrackerDeviceType)after];                TimeThreshold = GPSTrackerDeviceDefaults.Time[(GPSTrackerDeviceType)after];            }        }    }}
 |