/// <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); }
/// <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); }
/// <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); }