GPSTracker.cs 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  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; }
  20. [EditorSequence(5)]
  21. [DurationEditor]
  22. [Caption("Min Time")]
  23. public TimeSpan TimeThreshold { get; set; }
  24. [EditorSequence(6)]
  25. [IntegerEditor]
  26. [Caption("Min Distance (m)")]
  27. public int DistanceThreshhold { get; set; }
  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. protected override void Init()
  60. {
  61. base.Init();
  62. DeviceType = GPSTrackerDeviceType.Unknown;
  63. DistanceThreshhold = 100;
  64. TimeThreshold = new TimeSpan(0, 2, 0);
  65. Location = new Location();
  66. Equipment = new EquipmentLink();
  67. JobTracker = new JobTrackerLink();
  68. Type = new GPSTrackerTypeLink();
  69. }
  70. public override string ToString()
  71. {
  72. return string.Format("{0}: {1} ({2})", DeviceID, Description, DeviceType);
  73. }
  74. protected override void DoPropertyChanged(string name, object before, object after)
  75. {
  76. base.DoPropertyChanged(name, before, after);
  77. if (string.Equals(name, "DeviceType"))
  78. {
  79. DistanceThreshhold = GPSTrackerDeviceDefaults.Distance[(GPSTrackerDeviceType)after];
  80. TimeThreshold = GPSTrackerDeviceDefaults.Time[(GPSTrackerDeviceType)after];
  81. }
  82. }
  83. }
  84. }