Пример #1
0
        async Task IMessageSubscriber <RequestEventMessage> .Publish(RequestEventMessage message)
        {
            // Accept messages from Middleware. Drop if the message was published from other sources.
            if (message.EventSource != RequestRecorderMiddleware.EventSourceName)
            {
                return;
            }

            // Store a record into Redis and publish message to other servers.
            switch (message.Event)
            {
            case RequestEvent.BeginRequest:
                await AddAsync(message.Value);

                await _redis.PublishAsync(GetRedisKey(RedisSubscriptionKey), Serialize(new RequestEventMessage(_eventSourceKey, message.Value, RequestEvent.BeginRequest)));

                break;

            case RequestEvent.CompleteRequest:
                await UpdateAsync(message.Value);

                await _redis.PublishAsync(GetRedisKey(RedisSubscriptionKey), Serialize(new RequestEventMessage(_eventSourceKey, message.Value, RequestEvent.CompleteRequest)));

                break;
            }
        }
Пример #2
0
        public ActionResult Test()
        {
            string    sMsg = @"<xml><ToUserName><![CDATA[wx42c6025ff9bb2576]]></ToUserName>
<FromUserName><![CDATA[15021311065]]></FromUserName>
<CreateTime>1478775431</CreateTime>
<MsgType><![CDATA[event]]></MsgType>
<AgentID>0</AgentID>
<Event><![CDATA[unsubscribe]]></Event>
<EventKey><![CDATA[]]></EventKey>
</xml>";
            XDocument doc  = XmlHelper.LoadXML(sMsg);

            LogService.Fatal("msgType: " + JsonHelper.SerializeObject(doc));
            RequestMsgType msgType = MsgTypeHelper.GetRequestMsgType(doc);

            switch (msgType)
            {
            case RequestMsgType.Event:
                RequestEventMessage message = (RequestEventMessage)XmlHelper.Deserialize <RequestEventMessage>(sMsg);
                //成员关注、取消关注企业号的事件
                if (message.Event == "subscribe" || message.Event == "unsubscribe")
                {
                    var userId = message.FromUserName;

                    //关注状态: 1=已关注,2=已冻结,4=未关注
                    int status = message.Event == "subscribe" ? 1 : 4;
                    int rows   = EmployeeService.UpdateEmpStatus(userId, (byte)status);

                    LogService.Fatal("修改结果: " + rows);
                }
                break;
            }
            return(Content(sMsg));
        }
Пример #3
0
        Task IMessageSubscriber <RequestEventMessage> .Publish(RequestEventMessage message)
        {
            switch (message.Event)
            {
            case RequestEvent.BeginRequest:
                AddAsync(message.Value);
                break;

            case RequestEvent.CompleteRequest:
                UpdateAsync(message.Value);
                break;
            }

            return(Task.CompletedTask);
        }
Пример #4
0
        public ActionResult Index(string msg_signature, string timestamp, string nonce)
        {
            string sReqData = StreamHelper.Read(Request.InputStream);

            WXBizMsgCrypt wxcpt = new WXBizMsgCrypt();
            string        sMsg  = "";

            int ret = wxcpt.DecryptMsg(msg_signature, timestamp, nonce, sReqData, ref sMsg);

            if (ret != 0)
            {
                LogService.Fatal("ERR: VerifyURL fail, ret: " + ret);
            }
            //LogService.Fatal("解密后的数据: " + sMsg);

            XDocument      doc     = XmlHelper.LoadXML(sMsg);
            RequestMsgType msgType = MsgTypeHelper.GetRequestMsgType(doc);

            switch (msgType)
            {
            case RequestMsgType.Event:
                RequestEventMessage message = (RequestEventMessage)XmlHelper.Deserialize <RequestEventMessage>(sMsg);
                //成员关注、取消关注企业号的事件
                if (message != null && message.Event == "subscribe" || message.Event == "unsubscribe")
                {
                    var userId = message.FromUserName;

                    //关注状态: 1=已关注,2=已冻结,4=未关注
                    int status = message.Event == "subscribe" ? 1 : 4;
                    int rows   = EmployeeService.UpdateEmpStatus(userId, (byte)status);

                    //LogService.Fatal("修改结果: " + rows);
                }
                break;
            }

            return(Content(sMsg));
        }