예제 #1
0
파일: PushFeed.cs 프로젝트: xiongeee/BBX
        private bool PushFeedToDiscuzCloud(TopicInfo topic, PostInfo post, AttachmentInfo[] attachments, bool feedStatus)
        {
            if (topic == null || post == null || topic.Tid < 0 || topic.Posterid < 0 || post.Tid != topic.Tid || post.Pid < 0 || topic.Displayorder < 0 || topic.Hide == 1 || topic.Price > 0 || post.Invisible != 0 || !feedStatus)
            {
                return(false);
            }
            var userConnectInfo = DiscuzCloud.GetUserConnectInfo(topic.Posterid);

            if (userConnectInfo == null || !feedStatus)
            {
                return(false);
            }
            userConnectInfo.AllowPushFeed = feedStatus;
            if (DiscuzCloud.PushFeedToDiscuzCloud(topic, post, attachments, userConnectInfo, this.ip, this.rootUrl))
            {
                DiscuzCloud.CreateTopicPushFeedLog(new PushfeedLog
                {
                    ID           = topic.Tid,
                    Uid          = topic.Posterid,
                    AuthorToken  = userConnectInfo.Token,
                    AuthorSecret = userConnectInfo.Secret
                });
                return(true);
            }
            return(false);
        }
예제 #2
0
        private bool PushFeedToDiscuzCloud(TopicInfo topic, PostInfo post, AttachmentInfo[] attachments, int feedStatus)
        {
            //如果传入数据不合法,以及主题需要审核或者是回复可见的,需要付费的,就不推送到云平台
            if (topic == null || post == null || topic.Tid < 0 || topic.Posterid < 0 || post.Tid != topic.Tid || post.Pid < 0 ||
                topic.Displayorder < 0 || topic.Hide == 1 || topic.Price > 0 || post.Invisible != 0 || feedStatus < 0 || feedStatus > 3)
            {
                return(false);
            }

            UserConnectInfo userConnectInfo = DiscuzCloud.GetUserConnectInfo(topic.Posterid);

            if (userConnectInfo == null || feedStatus == 0)
            {
                return(false);
            }
            //设置用户自选的操作状态
            userConnectInfo.AllowPushFeed = feedStatus;

            if (DiscuzCloud.PushFeedToDiscuzCloud(topic, post, attachments, userConnectInfo, ip, rootUrl))
            {
                TopicPushFeedInfo feedInfo = new TopicPushFeedInfo();
                feedInfo.TopicId      = topic.Tid;
                feedInfo.Uid          = topic.Posterid;
                feedInfo.AuthorToken  = userConnectInfo.Token;
                feedInfo.AuthorSecret = userConnectInfo.Secret;
                DiscuzCloud.CreateTopicPushFeedLog(feedInfo);
                return(true);
            }
            return(false);
        }