⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 autoreplyer.cs

📁 该源代码用 C# 写成
💻 CS
字号:
using System;
using System.ComponentModel;

using Org.InteliIM;
using Org.InteliIM.Activities.Conversations;

namespace Org.InteliIM.Activities.Interactive
{
	/// <summary>
	/// 自动应答器
	/// </summary>
	public class AutoReplyer: Component
	{
		/// <summary>
		/// 构造函数
		/// </summary>
		public AutoReplyer()
		{
			this.InitializeComponent();
		}

		private void InitializeComponent()
		{
		
		}

		private IMClient client = null;

		/// <summary>
		/// 相关联的 IM 客户端对象
		/// </summary>
		public IMClient Client
		{
			get
			{
				return this.client;
			}
			set
			{
				this.client = value;

				this.UpdateConversationState();
			}
		}

		private Conversation conversation = null;

		/// <summary>
		/// 相关联的谈话对象
		/// </summary>
		public Conversation Conversation
		{
			get
			{
				return this.conversation;
			}
			set
			{
				this.conversation = value;

				this.UpdateConversationState();
			}
		}

		private AbstractEngine engine = null;

		/// <summary>
		/// 相关联的自动应答引擎
		/// </summary>
		public AbstractEngine Engine
		{
			get
			{
				return this.engine;
			}
			set
			{
				this.engine = value;

				this.UpdateConversationState();
			}
		}

		private bool enabled = false;

		/// <summary>
		/// 是否启用
		/// </summary>
		public bool Enabled
		{
			get
			{
				return this.enabled;
			}
			set
			{
				this.enabled = value;

				this.UpdateConversationState();
			}
		}

		/// <summary>
		/// 刷新谈话状态(事件)
		/// </summary>
		private void UpdateConversationState()
		{
			if(this.Enabled)
			{
				if(this.Conversation != null)
				{
					this.Conversation.ChatMessageReceived +=new ChatMessageReceivedEventHandler(Conversation_ChatMessageReceived);
				}
			}
			else
			{
				if(this.Conversation != null)
				{
					this.Conversation.ChatMessageReceived -= new ChatMessageReceivedEventHandler(Conversation_ChatMessageReceived);
				}
			}
		}

		private void Conversation_ChatMessageReceived(object sender, ChatMessageReceivedEventArgs e)
		{
			if(this.Enabled && this.Client != null
				&& this.Engine != null && this.Conversation != null
				&& this.Engine.CurrentStatus != null
				&& e.From != this.Client.User.Id)
			{				
				string expr = e.Message.Content;
													
				this.Engine.CurrentStatus.Accept(expr);
													
				Status nextStatus = this.Engine.CurrentStatus.NextStatus;
													
				String strResult = null;
													
				if (nextStatus != null)
				{
					this.Engine.CurrentStatus = nextStatus;
					strResult = this.Engine.CurrentStatus.getDisplayString();
				}
				else
				{
					strResult = "系统已经完成服务,欢迎再次使用.";
				}

				ChatMessage message = new ChatMessage();
				message.Content = strResult;

				this.Client.Chat(this.Conversation, message);	
			}
		}
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -