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); }