/// <summary>
        /// 用户进入应用事件
        /// </summary>
        /// <param name="requestMessage"></param>
        /// <returns></returns>
        public override IResponseMessageBase OnEvent_EnterAgentRequest(RequestMessageEvent_Enter_Agent requestMessage)
        {
            LogManager.GetLogger(this.GetType()).Debug("用户进入应用事件 - AppID:" + requestMessage.AgentID);

            // 记录用户行为
            _wr.CallUserBehavior(requestMessage.EventKey, requestMessage.FromUserName, requestMessage.AgentID.ToString(CultureInfo.InvariantCulture), "", "", 10);

            // 先判断是否第一次进入。
            // 从_weChatAppUser中获取当前用户
            string       userId       = requestMessage.FromUserName;
            bool         isFirstJoin  = false;
            var          existingUser = _weChatAppUserService.Repository.Entities.FirstOrDefault(a => a.WeChatUserID == userId && a.WeChatAppID == requestMessage.AgentID);
            var          objConfig    = WeChatCommonService.GetWeChatConfig(requestMessage.AgentID);
            CategoryType appType      = (CategoryType)requestMessage.AgentID;

            isFirstJoin = (existingUser == null || existingUser == default(WeChatAppUser));
            // 如果是第一次进入,需要将用户插入到数据库中
            if (isFirstJoin)
            {
                LogManager.GetLogger(this.GetType()).Debug("new WeChatAppUser - WeChatAppID=" + appType.ToDescription());
                // 将用户信息插入到数据库中
                _weChatAppUserService.Repository.Insert(new WeChatAppUser()
                {
                    WeChatAppID  = requestMessage.AgentID,
                    WeChatUserID = userId
                });
            }

            // 只有第一次推送。
            if (isFirstJoin)
            {
                List <ArticleInfoView> items;

                // TODO: 查找所有新闻的最新6条数据,组织图文推送
                switch (appType)
                {
                default:
                {
                    LogManager.GetLogger(this.GetType()).Debug("App Type not defined.");
                    items = _articleInfoService.GetList <ArticleInfoView>(a => a.ArticleStatus == "Published" && a.AppId == requestMessage.AgentID && a.ArticleCateSub.EndsWith("ENTRY_PUSH"))
                            .OrderBy("PublishDate", System.ComponentModel.ListSortDirection.Descending)
                            .ToList();
                    return(CreateResponse(items, objConfig.WXHost, "/News/ArticleInfo/wxdetail/"));
                }
                }
            }

            return(null);
        }