StopTransactionRequest.cs 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. using Newtonsoft.Json;
  2. using Newtonsoft.Json.Converters;
  3. using EVCB_OCPP.Packet.Utilities;
  4. using System;
  5. using System.Collections.Generic;
  6. using System.ComponentModel.DataAnnotations;
  7. using System.Linq;
  8. using System.Text;
  9. using System.Threading.Tasks;
  10. using EVCB_OCPP.Packet.Messages.SubTypes;
  11. using EVCB_OCPP.Packet.Features;
  12. namespace EVCB_OCPP.Packet.Messages.Core
  13. {
  14. public class StopTransactionRequest : IRequest
  15. {
  16. public StopTransactionRequest()
  17. {
  18. Action = Actions.StopTransaction.ToString();
  19. }
  20. [JsonIgnore]
  21. public string Action { set; get; }
  22. /// <summary>
  23. /// Authorization Id
  24. /// </summary>
  25. public string idTag { set; get; }
  26. /// <summary>
  27. /// 充電結束的電表讀數
  28. /// </summary>
  29. [Required]
  30. public int meterStop { set; get; }
  31. /// <summary>
  32. /// 交易Id
  33. /// </summary>
  34. [Required]
  35. public int transactionId { set; get; }
  36. /// <summary>
  37. /// 結束原因
  38. /// </summary>
  39. [JsonConverter(typeof(StringEnumConverter))]
  40. public Reason? reason { set; get; }
  41. /// <summary>
  42. /// 結束交易的時間
  43. /// </summary>
  44. [Required]
  45. [JsonConverter(typeof(UTCDateTimeConverter))]
  46. public DateTime timestamp { set; get; }
  47. /// <summary>
  48. /// 交易資料 (可包含交易細節 & 帳單)
  49. /// </summary>
  50. public List<MeterValue> transactionData { set; get; }
  51. public bool TransactionRelated()
  52. {
  53. return true;
  54. }
  55. public bool Validate()
  56. {
  57. return Validator.TryValidateObject(this, new ValidationContext(this), null, true);
  58. }
  59. }
  60. }