コード例 #1
0
ファイル: Social.cs プロジェクト: radtek/EMIP
        public virtual object Reply(HttpContext context)
        {
            YZRequest request   = new YZRequest(context);
            string    clientid  = request.GetString("clientid", null);
            int       messageid = request.GetInt32("messageid");
            JObject   jPost     = request.GetPostData <JObject>();
            string    msg       = (string)jPost["message"];

            YZMessage           parentMessage;
            YZMessage           message = new YZMessage();
            YZMessageCollection replies;

            using (IYZDbProvider provider = YZDbProviderManager.DefaultProvider)
            {
                using (IDbConnection cn = provider.OpenConnection())
                {
                    parentMessage = SocialManager.GetMessageByID(provider, cn, messageid);

                    message.resType = parentMessage.resType;
                    message.resId   = parentMessage.resId;
                    message.uid     = YZAuthHelper.LoginUserAccount;
                    message.date    = DateTime.Now;
                    message.message = msg;
                    message.replyto = parentMessage.id;

                    SocialManager.Insert(provider, cn, message);

                    replies = SocialManager.GetMessageReplies(provider, cn, parentMessage.id);
                    parentMessage["Replies"] = replies;
                    parentMessage["Praised"] = SocialManager.GetVotePraisedCount(provider, cn, parentMessage.id);
                }
            }

            using (BPMConnection cn = new BPMConnection())
            {
                cn.WebOpen();

                this.PostProcessMessage(cn, parentMessage);

                foreach (YZMessage replyMessage in replies)
                {
                    this.PostProcessMessage(cn, replyMessage);
                }
            }

            YZSoft.Web.Push.MessageBus.Instance.onPostComments(clientid, message);

            return(parentMessage);
        }
コード例 #2
0
ファイル: Social.cs プロジェクト: radtek/EMIP
        public virtual object GetMessages(HttpContext context)
        {
            YZRequest      request = new YZRequest(context);
            YZResourceType resType = request.GetEnum <YZResourceType>("resType");
            string         resId   = request.GetString("resId");

            YZMessageCollection messagesAll = new YZMessageCollection();
            YZMessageCollection messages;

            using (IYZDbProvider provider = YZDbProviderManager.DefaultProvider)
            {
                using (IDbConnection cn = provider.OpenConnection())
                {
                    messages = SocialManager.GetMessages(provider, cn, resType, resId);
                    messagesAll.AddRange(messages);

                    foreach (YZMessage message in messages)
                    {
                        YZMessageCollection replies = SocialManager.GetMessageReplies(provider, cn, message.id);
                        message["Replies"] = replies;
                        message["Praised"] = SocialManager.GetVotePraisedCount(provider, cn, message.id);

                        messagesAll.AddRange(replies);
                    }
                }
            }

            using (BPMConnection cn = new BPMConnection())
            {
                cn.WebOpen();

                foreach (YZMessage message in messagesAll)
                {
                    this.PostProcessMessage(cn, message);
                }
            }

            return(messages);
        }