Ejemplo n.º 1
0
        /// <summary>
        /// Determines whether this instance can handle the specified message.
        /// </summary>
        /// <param name="message">The message info.</param>
        /// <returns></returns>
        public override MessageHandlingResponse CanHandle(Message message)
        {
            MessageHandlingResponse response = new MessageHandlingResponse();

            foreach (QA qa in QAs)
            {
                if (Regex.IsMatch(message.Content.ToLower(), qa.Question, RegexOptions.IgnoreCase))
                {
                    response.Confidence = this.DefaultConfidence;
                    break;
                }
            }
            return(response);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Gets the message handler candidates for the specified message, i.e., the message handlers which return a confidence
        /// higher than one for the current message.
        /// </summary>
        /// <param name="message">The message info.</param>
        /// <returns></returns>
        private static Dictionary <MessageHandler, MessageHandlingResponse> GetMessageHandlerCandidates(Message message)
        {
            Dictionary <MessageHandler, MessageHandlingResponse> messageHandlerCandidates = new Dictionary <MessageHandler, MessageHandlingResponse>();
            List <MessageHandler> allMessageHandlers = MessageHandlerFactory.InitializeMessageHandlers();

            foreach (MessageHandler messageHandlerCandidate in allMessageHandlers)
            {
                MessageHandlingResponse handlingResponse = messageHandlerCandidate.CanHandle(message);
                if (handlingResponse.Confidence > 0)
                {
                    messageHandlerCandidates[messageHandlerCandidate] = handlingResponse;
                }
            }
            return(messageHandlerCandidates);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Determines whether this instance can handle the specified message.
        /// </summary>
        /// <param name="message">The message info.</param>
        /// <returns></returns>
        public override MessageHandlingResponse CanHandle(Message message)
        {
            MessageHandlingResponse response = new MessageHandlingResponse();

            if (DateTime.Now.DayOfWeek == DayOfWeek.Saturday ||
                DateTime.Now.DayOfWeek == DayOfWeek.Sunday)
            {
                response.Confidence = 0;
            }
            else
            {
                // we could have implemented more complex/specific
                // logic for handling the message here.
                response = base.CanHandle(message);
            }

            return(response);
        }