using System; 
 | 
  
 | 
namespace Top.Tmc 
 | 
{ 
 | 
    public class MessageArgs : EventArgs 
 | 
    { 
 | 
        protected internal bool _isFail; 
 | 
        protected internal string _reason; 
 | 
        protected internal bool _isConfirmed; 
 | 
        private Action<Message> confirm; 
 | 
  
 | 
        /// <summary>获取消息 
 | 
        /// </summary> 
 | 
        public Message Message { get; private set; } 
 | 
  
 | 
        public MessageArgs(Message message, Action<Message> confirm) 
 | 
        { 
 | 
            this.Message = message; 
 | 
            this.confirm = confirm; 
 | 
        } 
 | 
        /// <summary>将当前消息处理设置为失败,若该消息启用了重试,失败的消息将会再指定时间内重新发送 
 | 
        /// </summary> 
 | 
        public void Fail() 
 | 
        { 
 | 
            this.Fail(string.Empty); 
 | 
        } 
 | 
        /// <summary>将当前消息处理设置为失败,若该消息启用了重试,失败的消息将会再指定时间内重新发送 
 | 
        /// <param name="reason">指定失败原因</param> 
 | 
        /// </summary> 
 | 
        public void Fail(string reason) 
 | 
        { 
 | 
            this._reason = reason; 
 | 
            this._isFail = true; 
 | 
        } 
 | 
  
 | 
        /// <summary> 
 | 
        /// 对当前消息进行确认 
 | 
        /// </summary> 
 | 
        public void Confirm() 
 | 
        { 
 | 
            this.confirm(this.Message); 
 | 
            this._isConfirmed = true; 
 | 
        } 
 | 
    } 
 | 
} 
 |