예제 #1
0
        /// <summary>
        /// 执行上下文被移除的事件
        /// 注意:此事件不是实时触发的,而是等过期后任意一个人发过来的下一条消息执行之前触发。
        /// </summary>
        /// <param name="e"></param>
        private void OnMessageContextRemoved(WeixinContextRemovedEventArgs e)
        {
            EventHandler <WeixinContextRemovedEventArgs> temp = MessageContextRemoved;

            if (temp != null)
            {
                temp(this, e);
            }
        }
예제 #2
0
        /// <summary>
        /// 执行上下文被移除的事件
        /// 注意:此事件不是实时触发的,而是等过期后任意一个人发过来的下一条消息执行之前触发。
        /// </summary>
        /// <param name="e"></param>
        private void OnMessageContextRemoved(WeixinContextRemovedEventArgs e)
        {
            EventHandler<WeixinContextRemovedEventArgs> temp = MessageContextRemoved;

            if (temp != null)
            {
                temp(this, e);
            }
        }
        void CustomMessageContext_MessageContextRemoved(object sender, WeixinContextRemovedEventArgs e)
        {
            /* 注意,这个事件不是实时触发的(当然你也可以专门写一个线程监控)
             * 为了提高效率,根据WeixinContext中的算法,这里的过期消息会在过期后下一条请求执行之前被清除
             */

            var messageContext = e.MessageContext as CustomMessageContext;
            if (messageContext == null)
            {
                return;//如果是正常的调用,messageContext不会为null
            }

            //TODO:这里根据需要执行消息过期时候的逻辑,下面的代码仅供参考

            //Log.InfoFormat("{0}的消息上下文已过期",e.OpenId);
            //api.SendMessage(e.OpenId, "由于长时间未搭理客服,您的客服状态已退出!");
        }
예제 #4
0
        public virtual void OnRemoved()
        {
            var onRemovedArg = new WeixinContextRemovedEventArgs(this);

            OnMessageContextRemoved(onRemovedArg);
        }
예제 #5
0
 public virtual void OnRemoved()
 {
     var onRemovedArg = new WeixinContextRemovedEventArgs(this);
     OnMessageContextRemoved(onRemovedArg);
 }