public IPassiveMessage HandleMessage(WechatPushingMessage incomingMessage, MessageContext context) { Assert.Equal(context.SupportPassiveMessage, false); Assert.Equal(context.TypeIdentity.MsgType, "text"); Assert.Equal(context.TypeIdentity.EventType, null); Assert.NotNull(context.Raw); Assert.NotNull(incomingMessage); return(null); }
public IPassiveMessage HandleMessage(WechatPushingMessage incomingMessage, MessageContext context) { var typedMessage = incomingMessage as TIn; if (typedMessage != null) { return(HandleMessage(typedMessage, context)); } throw new InvalidCastException("incomingMessage doesn't match required message type."); }
public IMessageHandler Picking(WechatPushingMessage message) { var trueType = message.GetType(); if (_handlers.ContainsKey(trueType)) { return(_handlers[trueType]); } return(null); }
public IPassiveMessage HandleMessage(WechatPushingMessage incomingMessage, MessageContext context) { try { var passive = _innerHandler.HandleMessage(incomingMessage, context); if (context.SupportPassiveMessage && passive is WechatPassiveMessage) { Log.Logger.Debug("imcoming message support passive message."); var wechatPassive = (WechatPassiveMessage)passive; wechatPassive.BridgeTo(incomingMessage); Log.Logger.Debug("passive message bind to incoming message."); return(passive); } } catch (Exception exp) { Log.Logger.Fatal(exp, "execute message handler failed."); throw; } return(new AsyncPassiveMessage()); }
private MessageContext BuideMessageContext(HubContext context, TypeIdentity typeIdentity, XDocument rawXml, WechatPushingMessage message) { var supportPassiveMessage = message is IAcceptPassiveMessage; return(new MessageContext { Channel = context.Channel, TypeIdentity = typeIdentity, Raw = rawXml.ToString(), SupportPassiveMessage = supportPassiveMessage }); }