コード例 #1
0
ファイル: Topics.cs プロジェクト: mfcharaf/SnitzDotNet
        public static TopicInfo GetTopic(int topicid)
        {
            ITopic dal = Factory <ITopic> .Create("Topic");

            TopicInfo topic = dal.GetById(topicid);

            if (topic != null)
            {
                topic.Forum      = Forums.GetForum(topic.ForumId);
                topic.PollId     = GetTopicPollId(topicid);
                topic.IsArchived = false;
            }
            else
            {
                //let's check archives
                IArchiveForum archDal = Factory <IArchiveForum> .Create("ArchiveForums");

                topic = archDal.GetTopic(topicid);
                if (topic != null)
                {
                    topic.Forum      = Forums.GetForum(topic.ForumId);
                    topic.IsArchived = true;
                }
            }
            return(topic);
        }
コード例 #2
0
        public static int AddForumSubscription(int memberid, int forumid)
        {
            ForumInfo     forum = Forums.GetForum(forumid);
            ISubscription dal   = Factory <ISubscription> .Create("Subscription");

            return(dal.Add(new SubscriptionInfo {
                MemberId = memberid, ForumId = forumid, CategoryId = forum.CatId, TopicId = 0
            }));
        }
コード例 #3
0
ファイル: Topics.cs プロジェクト: mfcharaf/SnitzDotNet
        public static List <TopicInfo> GetLatestTopics(int topicCount)
        {
            string user        = HttpContext.Current.User.Identity.Name;
            bool   isadmin     = Roles.IsUserInRole(user, "Administrator");
            bool   ismoderator = Roles.IsUserInRole(user, "Moderator");
            ITopic dal         = Factory <ITopic> .Create("Topic");

            var topics = dal.GetLatestTopics(topicCount, "");

            List <int> roleList = new List <int> {
                0
            };

            roleList.AddRange(SnitzCachedLists.UserRoles().Select(role => role.Key));

            List <TopicInfo> allowedTopics = new List <TopicInfo>();

            foreach (var activeTopic in topics)
            {
                activeTopic.Forum = Forums.GetForum(activeTopic.ForumId);

                if (activeTopic.Status == 2 || activeTopic.Status == 3)
                {
                    if (!(isadmin || ismoderator || user == activeTopic.AuthorName))
                    {
                        continue;
                    }
                }
                if (activeTopic.Forum.AllowedRoles.Count == 0)
                {
                    allowedTopics.Add(activeTopic);
                }
                else
                {
                    if (activeTopic.Forum.AllowedRoles.Any(role => roleList.Contains(role) || isadmin))
                    {
                        allowedTopics.Add(activeTopic);
                    }
                }
            }
            return(allowedTopics);
        }