FUSIONTankGroup.cs 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  1. using System;
  2. using System.Collections.Generic;
  3. #if _SINP
  4. using Wayne.ForecourtControl.Nfs;
  5. #endif
  6. namespace Wayne.ForecourtControl.Fusion
  7. {
  8. public class FUSIONTankGroup : ITankGroup
  9. {
  10. #region Fields
  11. FUSIONManager manager;
  12. int id;
  13. List<ITank> tanks = new List<ITank>();
  14. bool blocked;
  15. int fuelGrade;
  16. #endregion
  17. #region Events
  18. public event EventHandler<FuelDeliveryEventArgs> OnFuelDelivery;
  19. #endregion
  20. #region Construction
  21. public FUSIONTankGroup(FUSIONManager manager, int id, int fuelGrade)
  22. {
  23. this.manager = manager;
  24. this.id = id;
  25. this.fuelGrade = fuelGrade;
  26. }
  27. #endregion
  28. #region Properties
  29. public int Id
  30. {
  31. get { return id; }
  32. }
  33. public System.Collections.ObjectModel.ReadOnlyCollection<ITank> Tanks
  34. {
  35. get { return tanks.AsReadOnly(); }
  36. }
  37. public bool Blocked
  38. {
  39. get { return blocked; }
  40. }
  41. public int FuelGrade
  42. {
  43. get { return fuelGrade; }
  44. }
  45. #endregion
  46. /*static public ITankGroup getTankGroupByIndex(int iTankGroupId)
  47. {
  48. foreach (ITankGroup tankgroup in FUSIONFactory.fusionForecourtControl.TankGroups)
  49. {
  50. if (tankgroup.Id == iTankGroupId)
  51. {
  52. return tankgroup;
  53. }
  54. }
  55. return null;
  56. }*/
  57. #region Methods
  58. public void BlockAsync(EventHandler<Wayne.Lib.AsyncCompletedEventArgs> blockCompleted, object userToken)
  59. {
  60. throw new NotImplementedException();
  61. }
  62. public void UnblockAsync(EventHandler<Wayne.Lib.AsyncCompletedEventArgs> unblockCompleted, object userToken)
  63. {
  64. throw new NotImplementedException();
  65. }
  66. public void RegisterManualDeliveryAsync(IManualFuelDeliveryParameters manualDeliveryParameters, EventHandler<Wayne.Lib.AsyncCompletedEventArgs> deliveryRegistrationCompleted, object userToken)
  67. {
  68. throw new NotImplementedException();
  69. //if (manualDeliveryParameters == null)
  70. // throw new ArgumentNullException("manualDeliveryParameters");
  71. //AsyncOperation<UInt16> operation = manager.AsyncManager.RegisterOperation(this, deliveryRegistrationCompleted, userToken);
  72. ////Get tank number. Get the first tank number of the tank group.
  73. //int tankNumber = 0;
  74. //if (tanks.Count > 0)
  75. // tankNumber = tanks[0].Id + 1;
  76. //manager.Send(new Function(Fid.RpcReqRegisterManualDelivery,
  77. // ParserDomain.FillingServer,
  78. // new PrimitiveParameter(Pid.SequenceNumber, PrimitiveType.Int16, operation.Id),
  79. // new PrimitiveParameter(Pid.TankDeliveryStartDateTime, PrimitiveType.DateTime, manualDeliveryParameters.StartDateTime),
  80. // new PrimitiveParameter(Pid.TankDeliveryEndDateTime, PrimitiveType.DateTime, manualDeliveryParameters.EndDateTime),
  81. // new PrimitiveParameter(Pid.TankNumber, PrimitiveType.Byte, tankNumber),
  82. // new PrimitiveParameter(Pid.FuelCode, PrimitiveType.Byte, fuelGrade + 1),
  83. // new PrimitiveParameter(Pid.TankDeliveryVolume, PrimitiveType.Decimal, manualDeliveryParameters.Quantity),
  84. // new PrimitiveParameter(Pid.TankProductTemp, PrimitiveType.Decimal, manualDeliveryParameters.TruckFuelTemperature),
  85. // new PrimitiveParameter(Pid.DeliveryNote, PrimitiveType.String, manualDeliveryParameters.ReferenceNote),
  86. // new PrimitiveParameter(Pid.PlannedVolume, PrimitiveType.Decimal, manualDeliveryParameters.PlannedQuantity),
  87. // new PrimitiveParameter(Pid.PlantInfo, PrimitiveType.String, manualDeliveryParameters.SourcePlantInfo)));
  88. }
  89. #endregion
  90. #region Writable Properties
  91. internal List<ITank> WritableTankList
  92. {
  93. get { return tanks; }
  94. }
  95. internal bool WritableBlocked
  96. {
  97. get { return blocked; }
  98. set { blocked = value; ; }
  99. }
  100. #endregion
  101. #region Event fire methods
  102. internal void FireOnFuelDelivery(FuelDeliveryEventArgs args)
  103. {
  104. if (OnFuelDelivery != null)
  105. OnFuelDelivery.BeginInvoke(this, args, null, null);
  106. }
  107. #endregion
  108. }
  109. }