Exemplo n.º 1
0
        /// <summary>
        /// 推送多图文
        /// </summary>
        public IResponseMessageBase GetResponseMessageNews(RequestMessageEventBase requestMessage, int ruleId, int accountId)
        {
            var    responseMessage = ResponseMessageBase.CreateFromRequestMessage <ResponseMessageNews>(requestMessage);
            string openid          = requestMessage.FromUserName;
            string token           = ConvertDateTimeInt(DateTime.Now).ToString();

            Senparc.NeuChar.Entities.Article        article;
            List <Senparc.NeuChar.Entities.Article> artList = new List <Senparc.NeuChar.Entities.Article>();
            //IList<Model.weixin_request_content> twList = new BLL.weixin_request_content().GetModelList(10, ruleId, string.Empty);
            IList <WeixinRequestContent> twList = WeixinRequestContent.FindAll(WeixinRequestContent._.RuleId == ruleId, null, null, 0, 10);

            foreach (WeixinRequestContent modelt in twList)
            {
                article             = new Senparc.NeuChar.Entities.Article();
                article.Title       = modelt.Title;
                article.Description = modelt.Content;
                article.Url         = GetWXApiUrl(modelt.LinkUrl, token, openid);
                if (string.IsNullOrEmpty(modelt.ImgURL))
                {
                    article.PicUrl = string.Empty;
                }
                else
                {
                    if (modelt.ImgURL.Contains("http://"))
                    {
                        article.PicUrl = modelt.ImgURL;
                    }
                    else
                    {
                        //因为安装目录是以/开头,所以去掉,以免出现双斜杆
                        article.PicUrl = Utils.GetServerUrl() + modelt.ImgURL;
                    }
                }
                artList.Add(article);
            }

            string EventName = "";

            if (requestMessage.Event.ToString().Trim() != "")
            {
                EventName = requestMessage.Event.ToString();
            }
            //else if (requestMessage.EventKey != null)
            //{
            //    EventName += requestMessage.EventKey.ToString();
            //}

            if (artList.Count == 0)
            {
                //new BLL.weixin_response_content().Add(accountId, requestMessage.FromUserName, requestMessage.MsgType.ToString(), EventName, "txtpic", "-1", requestMessage.ToUserName);
                WeixinResponseContent entity = new WeixinResponseContent()
                {
                    OpenId         = requestMessage.FromUserName,
                    RequestType    = requestMessage.MsgType.ToString(),
                    RequestContent = EventName,
                    ResponseType   = "txtpic",
                    ReponseContent = "-1",
                    XmlContent     = requestMessage.ToUserName
                };
                entity.Insert();
            }
            else
            {
                //new BLL.weixin_response_content().Add(accountId, requestMessage.FromUserName, requestMessage.MsgType.ToString(), EventName, "txtpic", "这次发了" + artList.Count + "条图文", requestMessage.ToUserName);
                WeixinResponseContent entity = new WeixinResponseContent()
                {
                    OpenId         = requestMessage.FromUserName,
                    RequestType    = requestMessage.MsgType.ToString(),
                    RequestContent = EventName,
                    ResponseType   = "txtpic",
                    ReponseContent = "这次发了" + artList.Count + "条图文",
                    XmlContent     = requestMessage.ToUserName
                };
                entity.Insert();
            }
            responseMessage.Articles.AddRange(artList);
            return(responseMessage);
        }