MessageArgs.cs 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. using System;
  2. namespace Top.Tmc
  3. {
  4. public class MessageArgs : EventArgs
  5. {
  6. protected internal bool _isFail;
  7. protected internal string _reason;
  8. protected internal bool _isConfirmed;
  9. private Action<Message> confirm;
  10. /// <summary>获取消息
  11. /// </summary>
  12. public Message Message { get; private set; }
  13. public MessageArgs(Message message, Action<Message> confirm)
  14. {
  15. this.Message = message;
  16. this.confirm = confirm;
  17. }
  18. /// <summary>将当前消息处理设置为失败,若该消息启用了重试,失败的消息将会再指定时间内重新发送
  19. /// </summary>
  20. public void Fail()
  21. {
  22. this.Fail(string.Empty);
  23. }
  24. /// <summary>将当前消息处理设置为失败,若该消息启用了重试,失败的消息将会再指定时间内重新发送
  25. /// <param name="reason">指定失败原因</param>
  26. /// </summary>
  27. public void Fail(string reason)
  28. {
  29. this._reason = reason;
  30. this._isFail = true;
  31. }
  32. /// <summary>
  33. /// 对当前消息进行确认
  34. /// </summary>
  35. public void Confirm()
  36. {
  37. this.confirm(this.Message);
  38. this._isConfirmed = true;
  39. }
  40. }
  41. }