Пример #1
0
        private string OutReplyText(TEntity entity, WxReplyTextEntity reply)
        {
            string[] array = new string[]
            {
                entity.FromUserName,
                entity.ToUserName,
                DateTimeHelper.ConvertDateTimeInt(DateTime.Now).ToString(),
                reply.Content
            };

            return(string.Format(ConstHelper.FORMAT_TEXT, array));
        }
        public WxReplyTextEntity EditText(string username)
        {
            var entity = (from x in this.DB.Set <WxReplyTextEntity>()
                          where x.Keyword == "subscribe"
                          select x).FirstOrDefault();

            if (entity == null)
            {
                entity           = new WxReplyTextEntity();
                entity.ID        = 0;
                entity.Keyword   = "subscribe";
                entity.UserName  = username;
                entity.MatchType = 1;
            }

            return(entity);
        }
Пример #3
0
        public ActionResult EditText(WxReplyTextEntity entity)
        {
            try
            {
                WxReplyTextRepository repository = new WxReplyTextRepository();
                if (entity.ID == 0)
                {
                    repository.Add(entity);
                }
                else
                {
                    repository.Update(entity.ID, entity);
                }

                return(RedirectToAction("Index"));
            }
            catch
            {
                return(View(entity));
            }
        }
Пример #4
0
        protected override string SendingMessage(WxSubscribeEventEntity entity, WxAccountEntity user,
                                                 OutReplyTextHandler OutReplyTextHandler, OutReplyImageTextHandler OutReplyImageTextHandler)
        {
            LogCommonHelper.WriteLog("开始处理关注/取消数据");
            var db = CoreDBContext.GetContext();
            //讀取配置
            var config = (from x in db.Set <WxSubscribeConfigEntity>()
                          where x.UserName == user.UserName
                          select x).FirstOrDefault();

            if (config != null)
            {
                if (config.IsSaveUser)
                {
                    // 记录到服务的数据库
                    WxSubUserEntity subUser = new WxSubUserEntity();
                    subUser.UserName = user.UserName;
                    subUser.OpenId   = entity.FromUserName;
                    WxSubUserRepository repository = new WxSubUserRepository();
                    repository.Add(subUser);

                    // 记录到别人的数据库
                    if (string.IsNullOrWhiteSpace(config.SaveUrl) == false)
                    {
                        Uri    uri = new Uri(config.SaveUrl);
                        string url = string.Empty;
                        if (string.IsNullOrEmpty(uri.Query))
                        {
                            url = string.Format("{0}?openid={1}", config.SaveUrl, entity.FromUserName);
                        }
                        else
                        {
                            url = string.Format("{0}&openid={1}", config.SaveUrl, entity.FromUserName);
                        }

                        if (!string.IsNullOrEmpty(url))
                        {
                            string html = WebHelper.GetFormWebRequest(url);
                        }
                    }
                }

                // 发送消息
                WxReplyTextEntity             textReply  = null;
                List <WxReplyImageTextEntity> imageReply = null;
                switch (config.ReplyType.ToLower())
                {
                case "text":
                    textReply = (from x in db.Set <WxReplyTextEntity>()
                                 where x.UserName == user.UserName &&
                                 x.Keyword == "subscribe"
                                 select x).FirstOrDefault();
                    break;

                case "imagetext":
                    var itReply = (from x in db.Set <WxReplyImageTextEntity>()
                                   where x.UserName == user.UserName &&
                                   x.Keyword == "subscribe"
                                   select x).FirstOrDefault();

                    if (itReply != null && !string.IsNullOrEmpty(itReply.WithIds))
                    {
                        string[] withIds = itReply.WithIds.Split(new char[] { '|' });
                        imageReply = (from x in db.Set <WxReplyImageTextEntity>()
                                      where x.UserName == user.UserName &&
                                      withIds.Contains(SqlFunctions.StringConvert((decimal)x.ID).Trim())
                                      select x).ToList();
                    }

                    imageReply.Insert(0, itReply);
                    break;
                }

                if (textReply != null)
                {
                    return(OutReplyTextHandler(entity, textReply));
                }

                if (imageReply != null)
                {
                    return(OutReplyImageTextHandler(entity, imageReply));
                }
            }

            return(string.Empty);
        }