Beispiel #1
0
        /// <summary>
        /// 根据ID得到一个主题页面实体
        /// </summary>
        /// <param name="name">页面名称</param>
        /// <returns>主题页面实体</returns>
        public static TopicPageEntity GetTopicPage(String name)
        {
            if (!RegexVerify.IsPageName(name))
            {
                throw new InvalidRequstException(RequestType.TopicPage);
            }

            TopicPageEntity topicpage = TopicPageCache.GetTopicPageCache(name);//读取缓存

            if (topicpage == null)
            {
                topicpage = TopicPageManager.GetReplacedContent(TopicPageRepository.Instance.GetEntity(name));
                TopicPageCache.SetTopicPageCache(topicpage);//设置缓存
            }

            if (topicpage == null)
            {
                throw new NullResponseException(RequestType.TopicPage);
            }

            if (topicpage.IsHide && !AdminManager.HasPermission(PermissionType.SuperAdministrator))
            {
                throw new NoPermissionException();
            }

            return(topicpage);
        }
Beispiel #2
0
        /// <summary>
        /// 更新主题页面隐藏状态
        /// </summary>
        /// <param name="id">主题页面名称</param>
        /// <param name="isHide">隐藏状态</param>
        /// <returns>是否成功更新</returns>
        public static IMethodResult AdminUpdateTopicPageIsHide(String name, Boolean isHide)
        {
            if (!AdminManager.HasPermission(PermissionType.SuperAdministrator))
            {
                throw new NoPermissionException();
            }

            Boolean success = TopicPageRepository.Instance.UpdateEntityIsHide(name, isHide) > 0;

            if (!success)
            {
                return(MethodResult.FailedAndLog("No page was {0}!", isHide ? "hided" : "unhided"));
            }

            TopicPageCache.RemoveTopicPageCache(name);//删除缓存

            return(MethodResult.SuccessAndLog("Admin {1} page, name = {0}", name, isHide ? "hide" : "unhide"));
        }
Beispiel #3
0
        /// <summary>
        /// 更新一条主题页面
        /// </summary>
        /// <param name="entity">对象实体</param>
        /// <param name="oldname">旧的主题页面名</param>
        /// <returns>是否成功更新</returns>
        public static IMethodResult AdminUpdateTopicPage(TopicPageEntity entity, String oldname)
        {
            if (!AdminManager.HasPermission(PermissionType.SuperAdministrator))
            {
                throw new NoPermissionException();
            }

            if (!RegexVerify.IsPageName(entity.PageName))
            {
                return(MethodResult.InvalidRequest(RequestType.TopicPage));
            }

            if (String.IsNullOrEmpty(entity.Title))
            {
                return(MethodResult.FailedAndLog("Page title can not be NULL!"));
            }

            if (String.IsNullOrEmpty(entity.Description))
            {
                return(MethodResult.FailedAndLog("Page description can not be NULL!"));
            }

            if (String.IsNullOrEmpty(entity.Content))
            {
                return(MethodResult.FailedAndLog("Page content can not be NULL!"));
            }

            entity.LastDate = DateTime.Now;

            Boolean success = TopicPageRepository.Instance.UpdateEntity(entity, oldname) > 0;

            if (!success)
            {
                return(MethodResult.FailedAndLog("No page was updated!"));
            }

            TopicPageCache.RemoveTopicPageCache(oldname);//更新缓存

            return(MethodResult.SuccessAndLog("Admin update page, name = {0}{1}", entity.PageName,
                                              (!String.Equals(oldname, entity.PageName, StringComparison.OrdinalIgnoreCase) ? ", previous = " + oldname : "")));
        }
Beispiel #4
0
        /// <summary>
        /// 删除指定ID的主题页面
        /// </summary>
        /// <param name="ids">逗号分隔的主题页面ID</param>
        /// <returns>是否成功删除</returns>
        public static IMethodResult AdminDeleteTopicPages(String names)
        {
            if (!AdminManager.HasPermission(PermissionType.SuperAdministrator))
            {
                throw new NoPermissionException();
            }

            Boolean success = TopicPageRepository.Instance.DeleteEntities(names) > 0;

            if (!success)
            {
                return(MethodResult.FailedAndLog("No page was deleted!"));
            }

            names.ForEachInIDs(',', name =>
            {
                TopicPageCache.RemoveTopicPageCache(name);//删除缓存
            });

            return(MethodResult.SuccessAndLog("Admin delete page, name = {0}", names));
        }