BotSharp/BotSharp.Channel.Weixin/Models/CustomMessageContext.cs

57 lines
1.9 KiB
C#
Raw Normal View History

2020-09-07 10:17:58 +00:00
/*----------------------------------------------------------------
2018-11-01 15:29:31 +00:00
Copyright (C) 2018 Senparc
CustomMessageContext.cs
Senparc - 20150312
----------------------------------------------------------------*/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
2020-09-07 10:17:58 +00:00
using System.Xml.Linq;
using Senparc.NeuChar;
2018-11-01 15:29:31 +00:00
using Senparc.NeuChar.Context;
using Senparc.NeuChar.Entities;
2020-09-07 10:17:58 +00:00
using Senparc.Weixin.MP.MessageContexts;
2018-11-01 15:29:31 +00:00
namespace BotSharp.Channel.Weixin.Models
{
2020-09-07 10:17:58 +00:00
public class CustomMessageContext : DefaultMpMessageContext
2018-11-01 15:29:31 +00:00
{
public CustomMessageContext()
2020-09-07 10:17:58 +00:00
{
2018-11-01 15:29:31 +00:00
base.MessageContextRemoved += CustomMessageContext_MessageContextRemoved;
}
2020-09-07 10:17:58 +00:00
2018-11-01 15:29:31 +00:00
/// <summary>
/// 当上下文过期,被移除时触发的时间
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
void CustomMessageContext_MessageContextRemoved(object sender, Senparc.NeuChar.Context.WeixinContextRemovedEventArgs<IRequestMessageBase, IResponseMessageBase> e)
{
/* 线
* WeixinContext中的算法
*/
var messageContext = e.MessageContext as CustomMessageContext;
if (messageContext == null)
{
return;//如果是正常的调用messageContext不会为null
}
//TODO:这里根据需要执行消息过期时候的逻辑,下面的代码仅供参考
//Log.InfoFormat("{0}的消息上下文已过期",e.OpenId);
//api.SendMessage(e.OpenId, "由于长时间未搭理客服,您的客服状态已退出!");
}
}
}