GPSTracker.cs 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. using System;
  2. using InABox.Core;
  3. namespace Comal.Classes
  4. {
  5. [UserTracking("GPS Tracking")]
  6. public class GPSTracker : Entity, IPersistent, IRemotable, ILicense<GPSTrackerLicense>, IExportable, IImportable
  7. {
  8. [EditorSequence(1)]
  9. [UniqueCodeEditor(Editable = Editable.Enabled)]
  10. public string DeviceID { get; set; }
  11. [EditorSequence(2)]
  12. [TextBoxEditor]
  13. public string Description { get; set; }
  14. [EditorSequence(3)]
  15. [EntityRelationship(DeleteAction.SetNull)]
  16. public GPSTrackerTypeLink Type { get; set; }
  17. [EditorSequence(4)]
  18. [EnumLookupEditor(typeof(GPSTrackerDeviceType), LookupWidth = 150)]
  19. public GPSTrackerDeviceType DeviceType { get; set; } = GPSTrackerDeviceType.Unknown;
  20. [EditorSequence(5)]
  21. [DurationEditor]
  22. [Caption("Min Time")]
  23. public TimeSpan TimeThreshold { get; set; } = new TimeSpan(0, 2, 0);
  24. [EditorSequence(6)]
  25. [IntegerEditor]
  26. [Caption("Min Distance (m)")]
  27. public int DistanceThreshhold { get; set; } = 100;
  28. [EditorSequence(7)]
  29. [EntityRelationship(DeleteAction.SetNull)]
  30. public EquipmentLink Equipment { get; set; }
  31. [EditorSequence(8)]
  32. [EntityRelationship(DeleteAction.SetNull)]
  33. public JobTrackerLink JobTracker { get; set; }
  34. [EditorSequence("Additional", 1)]
  35. [DoubleEditor]
  36. public double BatteryLevel { get; set; }
  37. [EditorSequence("Additional", 2)]
  38. [DoubleEditor]
  39. public double Hours { get; set; }
  40. [EditorSequence("Additional", 3)]
  41. [DoubleEditor]
  42. public double Distance { get; set; }
  43. [EditorSequence("Additional", 4)]
  44. [DoubleEditor]
  45. public double Counter1 { get; set; }
  46. [EditorSequence("Additional", 5)]
  47. [DoubleEditor]
  48. public double Counter2 { get; set; }
  49. [EditorSequence("Additional", 6)]
  50. [DoubleEditor]
  51. public double Counter3 { get; set; }
  52. [EditorSequence("Additional", 7)]
  53. [DoubleEditor]
  54. public double Counter4 { get; set; }
  55. [EditorSequence("Additional", 8)]
  56. [DoubleEditor]
  57. public double Counter5 { get; set; }
  58. public Location Location { get; set; }
  59. public override string ToString()
  60. {
  61. return string.Format("{0}: {1} ({2})", DeviceID, Description, DeviceType);
  62. }
  63. protected override void DoPropertyChanged(string name, object? before, object? after)
  64. {
  65. base.DoPropertyChanged(name, before, after);
  66. if (string.Equals(name, "DeviceType"))
  67. {
  68. DistanceThreshhold = GPSTrackerDeviceDefaults.Distance[(GPSTrackerDeviceType)after];
  69. TimeThreshold = GPSTrackerDeviceDefaults.Time[(GPSTrackerDeviceType)after];
  70. }
  71. }
  72. }
  73. }