public IHttpActionResult Delete()
        {
            try
            {
                var request   = new AuthenticatedRequest();
                var siteId    = request.GetPostInt("siteId");
                var specialId = request.GetPostInt("specialId");

                if (!request.IsAdminLoggin ||
                    !request.AdminPermissionsImpl.HasSitePermissions(siteId,
                                                                     ConfigManager.SitePermissions.Specials))
                {
                    return(Unauthorized());
                }

                var siteInfo    = SiteManager.GetSiteInfo(siteId);
                var specialInfo = SpecialManager.DeleteSpecialInfo(siteInfo, specialId);

                request.AddSiteLog(siteId,
                                   "删除专题",
                                   $"专题名称:{specialInfo.Title}");

                var specialInfoList = DataProvider.SpecialDao.GetSpecialInfoList(siteId);

                return(Ok(new
                {
                    Value = specialInfoList
                }));
            }
            catch (Exception ex)
            {
                return(InternalServerError(ex));
            }
        }
Ejemplo n.º 2
0
        public IHttpActionResult Submit()
        {
            try
            {
                var request = new AuthenticatedRequest();

                var siteId          = request.GetPostInt("siteId");
                var channelId       = request.GetPostInt("channelId");
                var contentIdList   = TranslateUtils.StringCollectionToIntList(request.GetPostString("contentIds"));
                var targetSiteId    = request.GetPostInt("targetSiteId");
                var targetChannelId = request.GetPostInt("targetChannelId");
                var copyType        = request.GetPostString("copyType");


                var siteInfo = SiteManager.GetSiteInfo(siteId);
                if (siteInfo == null)
                {
                    return(BadRequest("无法确定内容对应的站点"));
                }

                var targetSiteInfo = SiteManager.GetSiteInfo(targetSiteId);
                if (targetSiteInfo == null)
                {
                    return(BadRequest("无法确定转发对应的站点"));
                }

                var channelInfo = ChannelManager.GetChannelInfo(siteId, channelId);
                if (channelInfo == null)
                {
                    return(BadRequest("无法确定内容对应的栏目"));
                }

                foreach (var contentId in contentIdList)
                {
                    if (targetChannelId != 0)
                    {
                        CrossSiteTransUtility.TransContentInfo(siteInfo, channelInfo, contentId, targetSiteInfo, targetChannelId);
                    }
                }

                //request.AddSiteLog(siteId, channelId, "批量跨站转发", string.Empty);
                request.AddSiteLog(siteId, channelId, "内容跨站转发", $"转发到站点:{targetSiteInfo.SiteName}");

                CreateManager.TriggerContentChangedEvent(siteId, channelId);

                return(Ok(new
                {
                    Value = contentIdList
                }));
            }
            catch (Exception ex)
            {
                LogUtils.AddErrorLog(ex, "批量跨站转发失败");
                return(InternalServerError(ex));
            }
        }
        public IHttpActionResult Submit()
        {
            try
            {
                var request = new AuthenticatedRequest();
                var siteId  = request.SiteId;

                if (!request.IsAdminLoggin ||
                    !request.AdminPermissionsImpl.HasSitePermissions(siteId, ConfigManager.SitePermissions.ConfigSite))
                {
                    return(Unauthorized());
                }

                var siteInfo = SiteManager.GetSiteInfo(siteId);

                var siteName            = request.GetPostString("siteName");
                var charset             = ECharsetUtils.GetEnumType(request.GetPostString("charset"));
                var pageSize            = request.GetPostInt("pageSize", siteInfo.Additional.PageSize);
                var isCreateDoubleClick = request.GetPostBool("isCreateDoubleClick");

                siteInfo.SiteName                       = siteName;
                siteInfo.Additional.Charset             = ECharsetUtils.GetValue(charset);
                siteInfo.Additional.PageSize            = pageSize;
                siteInfo.Additional.IsCreateDoubleClick = isCreateDoubleClick;

                //修改所有模板编码
                var templateInfoList = DataProvider.TemplateDao.GetTemplateInfoListBySiteId(siteId);
                foreach (var templateInfo in templateInfoList)
                {
                    if (templateInfo.Charset == charset)
                    {
                        continue;
                    }

                    var templateContent = TemplateManager.GetTemplateContent(siteInfo, templateInfo);
                    templateInfo.Charset = charset;
                    DataProvider.TemplateDao.Update(siteInfo, templateInfo, templateContent, request.AdminName);
                }

                DataProvider.SiteDao.Update(siteInfo);

                request.AddSiteLog(siteId, "修改站点设置");

                return(Ok(new
                {
                    Value = siteInfo,
                    Config = siteInfo.Additional,
                }));
            }
            catch (Exception ex)
            {
                return(InternalServerError(ex));
            }
        }
Ejemplo n.º 4
0
        public IHttpActionResult Submit()
        {
            try
            {
                var request = new AuthenticatedRequest();

                var siteId            = request.GetPostInt("siteId");
                var channelId         = request.GetPostInt("channelId");
                var channelContentIds =
                    MinContentInfo.ParseMinContentInfoList(request.GetPostString("channelContentIds"));
                var targetSiteId    = request.GetPostInt("targetSiteId");
                var targetChannelId = request.GetPostInt("targetChannelId");
                var copyType        = request.GetPostString("copyType");

                if (!request.IsAdminLoggin ||
                    !request.AdminPermissionsImpl.HasChannelPermissions(siteId, channelId,
                                                                        ConfigManager.ChannelPermissions.ContentTranslate))
                {
                    return(Unauthorized());
                }

                var siteInfo = SiteManager.GetSiteInfo(siteId);
                if (siteInfo == null)
                {
                    return(BadRequest("无法确定内容对应的站点"));
                }

                var channelInfo = ChannelManager.GetChannelInfo(siteId, channelId);
                if (channelInfo == null)
                {
                    return(BadRequest("无法确定内容对应的栏目"));
                }

                foreach (var channelContentId in channelContentIds)
                {
                    ContentUtility.Translate(siteInfo, channelContentId.ChannelId, channelContentId.Id, targetSiteId, targetChannelId, ETranslateContentTypeUtils.GetEnumType(copyType));
                }

                request.AddSiteLog(siteId, channelId, "复制内容", string.Empty);

                CreateManager.TriggerContentChangedEvent(siteId, channelId);

                return(Ok(new
                {
                    Value = true
                }));
            }
            catch (Exception ex)
            {
                LogUtils.AddErrorLog(ex);
                return(InternalServerError(ex));
            }
        }
Ejemplo n.º 5
0
        public IHttpActionResult Submit()
        {
            try
            {
                var request = new AuthenticatedRequest();

                var siteId          = request.GetPostInt("siteId");
                var channelId       = request.GetPostInt("channelId");
                var contentIdList   = TranslateUtils.StringCollectionToIntList(request.GetPostString("contentIds"));
                var targetSiteId    = request.GetPostInt("targetSiteId");
                var targetChannelId = request.GetPostInt("targetChannelId");

                if (!request.IsUserLoggin ||
                    !request.UserPermissionsImpl.HasChannelPermissions(siteId, channelId,
                                                                       ConfigManager.ChannelPermissions.ContentTranslate))
                {
                    return(Unauthorized());
                }

                var siteInfo = SiteManager.GetSiteInfo(siteId);
                if (siteInfo == null)
                {
                    return(BadRequest("无法确定内容对应的站点"));
                }

                var channelInfo = ChannelManager.GetChannelInfo(siteId, channelId);
                if (channelInfo == null)
                {
                    return(BadRequest("无法确定内容对应的栏目"));
                }

                foreach (var contentId in contentIdList)
                {
                    ContentUtility.Translate(siteInfo, channelId, contentId, targetSiteId, targetChannelId, ETranslateContentType.Cut);
                }

                request.AddSiteLog(siteId, channelId, "转移内容", string.Empty);

                CreateManager.TriggerContentChangedEvent(siteId, channelId);

                return(Ok(new
                {
                    Value = contentIdList
                }));
            }
            catch (Exception ex)
            {
                LogUtils.AddErrorLog(ex);
                return(InternalServerError(ex));
            }
        }
Ejemplo n.º 6
0
        public IHttpActionResult Submit()
        {
            try
            {
                var request = new AuthenticatedRequest();

                var siteId    = request.GetPostInt("siteId");
                var channelId = request.GetPostInt("channelId");

                if (!request.IsAdminLoggin ||
                    !request.AdminPermissionsImpl.HasChannelPermissions(siteId, channelId,
                                                                        ConfigManager.ChannelPermissions.ChannelEdit))
                {
                    return(Unauthorized());
                }

                var siteInfo = SiteManager.GetSiteInfo(siteId);
                if (siteInfo == null)
                {
                    return(BadRequest("无法确定内容对应的站点"));
                }

                var channelInfo = ChannelManager.GetChannelInfo(siteId, channelId);
                if (channelInfo == null)
                {
                    return(BadRequest("无法确定内容对应的栏目"));
                }

                var attributeNames = request.GetPostString("attributeNames");
                var isAllContents  = request.GetPostBool("isAllContents");
                var isSelfOnly     = request.GetPostBool("isSelfOnly");

                channelInfo.Additional.ContentAttributesOfDisplay = attributeNames;
                channelInfo.Additional.IsAllContents = isAllContents;
                channelInfo.Additional.IsSelfOnly    = isSelfOnly;

                DataProvider.ChannelDao.Update(channelInfo);

                request.AddSiteLog(siteId, "设置内容选项");

                return(Ok(new
                {
                    Value = true
                }));
            }
            catch (Exception ex)
            {
                LogUtils.AddErrorLog(ex);
                return(InternalServerError(ex));
            }
        }
        public IHttpActionResult Submit()
        {
            try
            {
                var request = new AuthenticatedRequest();

                var siteId        = request.GetPostInt("siteId");
                var channelId     = request.GetPostInt("channelId");
                var attributeName = request.GetPostString("attributeName");
                var isDesc        = request.GetPostBool("isDesc");

                if (!request.IsUserLoggin ||
                    !request.UserPermissionsImpl.HasChannelPermissions(siteId, channelId,
                                                                       ConfigManager.ChannelPermissions.ContentEdit))
                {
                    return(Unauthorized());
                }

                var siteInfo = SiteManager.GetSiteInfo(siteId);
                if (siteInfo == null)
                {
                    return(BadRequest("无法确定内容对应的站点"));
                }

                var channelInfo = ChannelManager.GetChannelInfo(siteId, channelId);
                if (channelInfo == null)
                {
                    return(BadRequest("无法确定内容对应的栏目"));
                }

                var tableName = ChannelManager.GetTableName(siteInfo, channelInfo);

                DataProvider.ContentDao.UpdateArrangeTaxis(tableName, channelId, attributeName, isDesc);

                request.AddSiteLog(siteId, "批量整理", string.Empty);

                return(Ok(new
                {
                    Value = true
                }));
            }
            catch (Exception ex)
            {
                LogUtils.AddErrorLog(ex);
                return(InternalServerError(ex));
            }
        }
Ejemplo n.º 8
0
        public NameValueCollection Recovery(int siteId, bool isDeleteChannels, bool isDeleteTemplates, bool isDeleteFiles, bool isZip, string path, bool isOverride, bool isUseTable, string userKeyPrefix, AuthenticatedRequest request)
        {
            //返回“运行结果”和“错误信息”的字符串数组
            NameValueCollection retVal;

            try
            {
                BackupUtility.RecoverySite(siteId, isDeleteChannels, isDeleteTemplates, isDeleteFiles, isZip, PageUtils.UrlDecode(path), isOverride, isUseTable, request.AdminName);

                request.AddSiteLog(siteId, "恢复备份数据", request.AdminName);

                retVal = AjaxManager.GetWaitingTaskNameValueCollection("数据恢复成功!", string.Empty, string.Empty);

                //retVal = new string[] { "数据恢复成功!", string.Empty, string.Empty };
            }
            catch (Exception ex)
            {
                //retVal = new string[] { string.Empty, ex.Message, string.Empty };
                retVal = AjaxManager.GetWaitingTaskNameValueCollection(string.Empty, ex.Message, string.Empty);
                LogUtils.AddErrorLog(ex);
            }

            return(retVal);
        }
        public IHttpActionResult Submit()
        {
            try
            {
                var request = new AuthenticatedRequest();

                var siteId             = request.GetPostInt("siteId");
                var channelId          = request.GetPostInt("channelId");
                var contentIdList      = TranslateUtils.StringCollectionToIntList(request.GetPostString("contentIds"));
                var checkedLevel       = request.GetPostInt("checkedLevel");
                var isTranslate        = request.GetPostBool("isTranslate");
                var translateChannelId = request.GetPostInt("translateChannelId");
                var reasons            = request.GetPostString("reasons");

                if (!request.IsAdminLoggin ||
                    !request.AdminPermissionsImpl.HasChannelPermissions(siteId, channelId,
                                                                        ConfigManager.ChannelPermissions.ContentCheck))
                {
                    return(Unauthorized());
                }

                var siteInfo = SiteManager.GetSiteInfo(siteId);
                if (siteInfo == null)
                {
                    return(BadRequest("无法确定内容对应的站点"));
                }

                var channelInfo = ChannelManager.GetChannelInfo(siteId, channelId);
                if (channelInfo == null)
                {
                    return(BadRequest("无法确定内容对应的栏目"));
                }

                var isChecked = checkedLevel >= siteInfo.Additional.CheckContentLevel;
                if (isChecked)
                {
                    checkedLevel = 0;
                }
                var tableName = ChannelManager.GetTableName(siteInfo, channelInfo);

                var contentInfoList = new List <ContentInfo>();
                foreach (var contentId in contentIdList)
                {
                    var contentInfo = ContentManager.GetContentInfo(siteInfo, channelInfo, contentId);
                    if (contentInfo == null)
                    {
                        continue;
                    }

                    contentInfo.Set(ContentAttribute.CheckUserName, request.AdminName);
                    contentInfo.Set(ContentAttribute.CheckDate, DateTime.Now);
                    contentInfo.Set(ContentAttribute.CheckReasons, reasons);

                    contentInfo.IsChecked    = isChecked;
                    contentInfo.CheckedLevel = checkedLevel;

                    if (isTranslate && translateChannelId > 0)
                    {
                        var translateChannelInfo = ChannelManager.GetChannelInfo(siteId, translateChannelId);
                        contentInfo.ChannelId = translateChannelInfo.Id;
                        DataProvider.ContentDao.Update(siteInfo, translateChannelInfo, contentInfo);
                    }
                    else
                    {
                        DataProvider.ContentDao.Update(siteInfo, channelInfo, contentInfo);
                    }

                    contentInfoList.Add(contentInfo);

                    var checkInfo = new ContentCheckInfo(0, tableName, siteId, contentInfo.ChannelId, contentInfo.Id, request.AdminName, isChecked, checkedLevel, DateTime.Now, reasons);
                    DataProvider.ContentCheckDao.Insert(checkInfo);
                }

                if (isTranslate && translateChannelId > 0)
                {
                    ContentManager.RemoveCache(tableName, channelId);
                    var translateTableName = ChannelManager.GetTableName(siteInfo, translateChannelId);
                    ContentManager.RemoveCache(translateTableName, translateChannelId);
                }

                request.AddSiteLog(siteId, "批量审核内容");

                foreach (var contentInfo in contentInfoList)
                {
                    CreateManager.CreateContent(siteId, contentInfo.ChannelId, contentInfo.Id);
                }
                CreateManager.TriggerContentChangedEvent(siteId, channelId);
                if (isTranslate && translateChannelId > 0)
                {
                    CreateManager.TriggerContentChangedEvent(siteId, translateChannelId);
                }

                return(Ok(new
                {
                    Value = contentIdList
                }));
            }
            catch (Exception ex)
            {
                LogUtils.AddErrorLog(ex);
                return(InternalServerError(ex));
            }
        }
Ejemplo n.º 10
0
        public IHttpActionResult Submit()
        {
            try
            {
                var request = new AuthenticatedRequest();

                var siteId        = request.GetPostInt("siteId");
                var channelId     = request.GetPostInt("channelId");
                var contentIdList = TranslateUtils.StringCollectionToIntList(request.GetPostString("contentIds"));
                var pageType      = request.GetPostString("pageType");
                var isRecommend   = request.GetPostBool("isRecommend");
                var isHot         = request.GetPostBool("isHot");
                var isColor       = request.GetPostBool("isColor");
                var isTop         = request.GetPostBool("isTop");
                var hits          = request.GetPostInt("hits");

                if (!request.IsUserLoggin ||
                    !request.UserPermissionsImpl.HasChannelPermissions(siteId, channelId,
                                                                       ConfigManager.ChannelPermissions.ContentEdit))
                {
                    return(Unauthorized());
                }

                var siteInfo = SiteManager.GetSiteInfo(siteId);
                if (siteInfo == null)
                {
                    return(BadRequest("无法确定内容对应的站点"));
                }

                var channelInfo = ChannelManager.GetChannelInfo(siteId, channelId);
                if (channelInfo == null)
                {
                    return(BadRequest("无法确定内容对应的栏目"));
                }

                if (pageType == "setAttributes")
                {
                    if (isRecommend || isHot || isColor || isTop)
                    {
                        foreach (var contentId in contentIdList)
                        {
                            var contentInfo = ContentManager.GetContentInfo(siteInfo, channelInfo, contentId);
                            if (contentInfo == null)
                            {
                                continue;
                            }

                            if (isRecommend)
                            {
                                contentInfo.IsRecommend = true;
                            }
                            if (isHot)
                            {
                                contentInfo.IsHot = true;
                            }
                            if (isColor)
                            {
                                contentInfo.IsColor = true;
                            }
                            if (isTop)
                            {
                                contentInfo.IsTop = true;
                            }
                            DataProvider.ContentDao.Update(siteInfo, channelInfo, contentInfo);
                        }

                        request.AddSiteLog(siteId, "设置内容属性");
                    }
                }
                else if (pageType == "cancelAttributes")
                {
                    if (isRecommend || isHot || isColor || isTop)
                    {
                        foreach (var contentId in contentIdList)
                        {
                            var contentInfo = ContentManager.GetContentInfo(siteInfo, channelInfo, contentId);
                            if (contentInfo == null)
                            {
                                continue;
                            }

                            if (isRecommend)
                            {
                                contentInfo.IsRecommend = false;
                            }
                            if (isHot)
                            {
                                contentInfo.IsHot = false;
                            }
                            if (isColor)
                            {
                                contentInfo.IsColor = false;
                            }
                            if (isTop)
                            {
                                contentInfo.IsTop = false;
                            }
                            DataProvider.ContentDao.Update(siteInfo, channelInfo, contentInfo);
                        }

                        request.AddSiteLog(siteId, "取消内容属性");
                    }
                }
                else if (pageType == "setHits")
                {
                    foreach (var contentId in contentIdList)
                    {
                        var contentInfo = ContentManager.GetContentInfo(siteInfo, channelInfo, contentId);
                        if (contentInfo == null)
                        {
                            continue;
                        }

                        contentInfo.Hits = hits;
                        DataProvider.ContentDao.Update(siteInfo, channelInfo, contentInfo);
                    }

                    request.AddSiteLog(siteId, "设置内容点击量");
                }

                return(Ok(new
                {
                    Value = contentIdList
                }));
            }
            catch (Exception ex)
            {
                LogUtils.AddErrorLog(ex);
                return(InternalServerError(ex));
            }
        }
Ejemplo n.º 11
0
        public IHttpActionResult Submit()
        {
            try
            {
                var request = new AuthenticatedRequest();

                var siteId        = request.GetPostInt("siteId");
                var channelId     = request.GetPostInt("channelId");
                var contentIdList = TranslateUtils.StringCollectionToIntList(request.GetPostString("contentIds"));
                var isUp          = request.GetPostBool("isUp");
                var taxis         = request.GetPostInt("taxis");

                if (!request.IsAdminLoggin ||
                    !request.AdminPermissionsImpl.HasChannelPermissions(siteId, channelId,
                                                                        ConfigManager.ChannelPermissions.ContentEdit))
                {
                    return(Unauthorized());
                }

                var siteInfo = SiteManager.GetSiteInfo(siteId);
                if (siteInfo == null)
                {
                    return(BadRequest("无法确定内容对应的站点"));
                }

                var channelInfo = ChannelManager.GetChannelInfo(siteId, channelId);
                if (channelInfo == null)
                {
                    return(BadRequest("无法确定内容对应的栏目"));
                }

                if (ETaxisTypeUtils.Equals(channelInfo.Additional.DefaultTaxisType, ETaxisType.OrderByTaxis))
                {
                    isUp = !isUp;
                }

                if (isUp == false)
                {
                    contentIdList.Reverse();
                }

                var tableName = ChannelManager.GetTableName(siteInfo, channelInfo);

                foreach (var contentId in contentIdList)
                {
                    var contentInfo = ContentManager.GetContentInfo(siteInfo, channelInfo, contentId);
                    if (contentInfo == null)
                    {
                        continue;
                    }

                    var isTop = contentInfo.IsTop;
                    for (var i = 1; i <= taxis; i++)
                    {
                        if (isUp)
                        {
                            if (DataProvider.ContentDao.SetTaxisToUp(tableName, channelId, contentId, isTop) == false)
                            {
                                break;
                            }
                        }
                        else
                        {
                            if (DataProvider.ContentDao.SetTaxisToDown(tableName, channelId, contentId, isTop) == false)
                            {
                                break;
                            }
                        }
                    }
                }

                CreateManager.TriggerContentChangedEvent(siteId, channelId);

                request.AddSiteLog(siteId, channelId, 0, "对内容排序", string.Empty);

                return(Ok(new
                {
                    Value = contentIdList
                }));
            }
            catch (Exception ex)
            {
                LogUtils.AddErrorLog(ex);
                return(InternalServerError(ex));
            }
        }
Ejemplo n.º 12
0
        public IHttpActionResult Create(int siteId)
        {
            try
            {
                var request  = new AuthenticatedRequest();
                var parentId = request.GetPostInt(ChannelAttribute.ParentId, siteId);

                var isAuth = request.IsApiAuthenticated &&
                             AccessTokenManager.IsScope(request.ApiToken, AccessTokenManager.ScopeChannels) ||
                             request.IsAdminLoggin &&
                             request.AdminPermissions.HasChannelPermissions(siteId, parentId,
                                                                            ConfigManager.ChannelPermissions.ChannelAdd);
                if (!isAuth)
                {
                    return(Unauthorized());
                }

                var siteInfo = SiteManager.GetSiteInfo(siteId);
                if (siteInfo == null)
                {
                    return(BadRequest("无法确定内容对应的站点"));
                }

                var contentModelPluginId    = request.GetPostString(ChannelAttribute.ContentModelPluginId);
                var contentRelatedPluginIds = request.GetPostString(ChannelAttribute.ContentRelatedPluginIds);

                var channelName         = request.GetPostString(ChannelAttribute.ChannelName);
                var indexName           = request.GetPostString(ChannelAttribute.IndexName);
                var filePath            = request.GetPostString(ChannelAttribute.FilePath);
                var channelFilePathRule = request.GetPostString(ChannelAttribute.ChannelFilePathRule);
                var contentFilePathRule = request.GetPostString(ChannelAttribute.ContentFilePathRule);
                var groupNameCollection = request.GetPostString(ChannelAttribute.GroupNameCollection);
                var imageUrl            = request.GetPostString(ChannelAttribute.ImageUrl);
                var content             = request.GetPostString(ChannelAttribute.Content);
                var keywords            = request.GetPostString(ChannelAttribute.Keywords);
                var description         = request.GetPostString(ChannelAttribute.Description);
                var linkUrl             = request.GetPostString(ChannelAttribute.LinkUrl);
                var linkType            = request.GetPostString(ChannelAttribute.LinkType);
                var channelTemplateId   = request.GetPostInt(ChannelAttribute.ChannelTemplateId);
                var contentTemplateId   = request.GetPostInt(ChannelAttribute.ContentTemplateId);

                var channelInfo = new ChannelInfo
                {
                    SiteId                  = siteId,
                    ParentId                = parentId,
                    ContentModelPluginId    = contentModelPluginId,
                    ContentRelatedPluginIds = contentRelatedPluginIds
                };

                if (!string.IsNullOrEmpty(indexName))
                {
                    var indexNameList = DataProvider.ChannelDao.GetIndexNameList(siteId);
                    if (indexNameList.IndexOf(indexName) != -1)
                    {
                        return(BadRequest("栏目添加失败,栏目索引已存在!"));
                    }
                }

                if (!string.IsNullOrEmpty(filePath))
                {
                    if (!DirectoryUtils.IsDirectoryNameCompliant(filePath))
                    {
                        return(BadRequest("栏目页面路径不符合系统要求!"));
                    }

                    if (PathUtils.IsDirectoryPath(filePath))
                    {
                        filePath = PageUtils.Combine(filePath, "index.html");
                    }

                    var filePathList = DataProvider.ChannelDao.GetAllFilePathBySiteId(siteId);
                    if (filePathList.IndexOf(filePath) != -1)
                    {
                        return(BadRequest("栏目添加失败,栏目页面路径已存在!"));
                    }
                }

                if (!string.IsNullOrEmpty(channelFilePathRule))
                {
                    if (!DirectoryUtils.IsDirectoryNameCompliant(channelFilePathRule))
                    {
                        return(BadRequest("栏目页面命名规则不符合系统要求!"));
                    }
                    if (PathUtils.IsDirectoryPath(channelFilePathRule))
                    {
                        return(BadRequest("栏目页面命名规则必须包含生成文件的后缀!"));
                    }
                }

                if (!string.IsNullOrEmpty(contentFilePathRule))
                {
                    if (!DirectoryUtils.IsDirectoryNameCompliant(contentFilePathRule))
                    {
                        return(BadRequest("内容页面命名规则不符合系统要求!"));
                    }
                    if (PathUtils.IsDirectoryPath(contentFilePathRule))
                    {
                        return(BadRequest("内容页面命名规则必须包含生成文件的后缀!"));
                    }
                }

                //var parentChannelInfo = ChannelManager.GetChannelInfo(siteId, parentId);
                //var styleInfoList = TableStyleManager.GetChannelStyleInfoList(parentChannelInfo);
                //var extendedAttributes = BackgroundInputTypeParser.SaveAttributes(siteInfo, styleInfoList, Request.Form, null);
                channelInfo.Additional.Load(request.GetPostObject <Dictionary <string, object> >());
                //foreach (string key in attributes)
                //{
                //    channelInfo.Additional.SetExtendedAttribute(key, attributes[key]);
                //}

                channelInfo.ChannelName         = channelName;
                channelInfo.IndexName           = indexName;
                channelInfo.FilePath            = filePath;
                channelInfo.ChannelFilePathRule = channelFilePathRule;
                channelInfo.ContentFilePathRule = contentFilePathRule;

                channelInfo.GroupNameCollection = groupNameCollection;
                channelInfo.ImageUrl            = imageUrl;
                channelInfo.Content             = content;
                channelInfo.Keywords            = keywords;
                channelInfo.Description         = description;
                channelInfo.LinkUrl             = linkUrl;
                channelInfo.LinkType            = linkType;
                channelInfo.ChannelTemplateId   = channelTemplateId;
                channelInfo.ContentTemplateId   = contentTemplateId;

                channelInfo.AddDate = DateTime.Now;
                channelInfo.Id      = DataProvider.ChannelDao.Insert(channelInfo);
                //栏目选择投票样式后,内容

                CreateManager.CreateChannel(siteId, channelInfo.Id);

                request.AddSiteLog(siteId, "添加栏目", $"栏目:{channelName}");

                return(Ok(new
                {
                    Value = channelInfo.ToDictionary()
                }));
            }
            catch (Exception ex)
            {
                LogUtils.AddErrorLog(ex);
                return(InternalServerError(ex));
            }
        }
Ejemplo n.º 13
0
        public IHttpActionResult Submit()
        {
            try
            {
                var request = new AuthenticatedRequest();

                var siteId       = request.GetPostInt("siteId");
                var guid         = request.GetPostString("guid");
                var specialId    = request.GetPostInt("specialId");
                var isEditOnly   = request.GetPostBool("isEditOnly");
                var isUploadOnly = request.GetPostBool("isUploadOnly");
                var title        = request.GetPostString("title");
                var url          = request.GetPostString("url");
                var fileNames    = TranslateUtils.StringCollectionToStringList(request.GetPostString("fileNames"));
                var siteInfo     = SiteManager.GetSiteInfo(siteId);

                if (!request.IsAdminLoggin ||
                    !request.AdminPermissionsImpl.HasSitePermissions(siteId,
                                                                     ConfigManager.SitePermissions.Specials))
                {
                    return(Unauthorized());
                }

                if (specialId > 0 && isEditOnly)
                {
                    var specialInfo      = SpecialManager.GetSpecialInfo(siteId, specialId);
                    var oldDirectoryPath = string.Empty;
                    var newDirectoryPath = string.Empty;

                    if (specialInfo.Title != title && DataProvider.SpecialDao.IsTitleExists(siteId, title))
                    {
                        return(BadRequest("专题修改失败,专题名称已存在!"));
                    }
                    if (specialInfo.Url != url)
                    {
                        if (DataProvider.SpecialDao.IsUrlExists(siteId, url))
                        {
                            return(BadRequest("专题修改失败,专题访问地址已存在!"));
                        }

                        oldDirectoryPath = SpecialManager.GetSpecialDirectoryPath(siteInfo, specialInfo.Url);
                        newDirectoryPath = SpecialManager.GetSpecialDirectoryPath(siteInfo, url);
                    }

                    specialInfo.Title = title;
                    specialInfo.Url   = url;
                    DataProvider.SpecialDao.Update(specialInfo);

                    if (oldDirectoryPath != newDirectoryPath)
                    {
                        DirectoryUtils.MoveDirectory(oldDirectoryPath, newDirectoryPath, true);
                    }
                }
                else if (specialId > 0 && isUploadOnly)
                {
                    var specialInfo = SpecialManager.GetSpecialInfo(siteId, specialId);

                    var directoryPath    = SpecialManager.GetSpecialDirectoryPath(siteInfo, specialInfo.Url);
                    var srcDirectoryPath = SpecialManager.GetSpecialSrcDirectoryPath(directoryPath);
                    DirectoryUtils.CreateDirectoryIfNotExists(srcDirectoryPath);

                    var uploadDirectoryPath = PathUtils.GetTemporaryFilesPath(guid);
                    foreach (var filePath in DirectoryUtils.GetFilePaths(uploadDirectoryPath))
                    {
                        var fileName = PathUtils.GetFileName(filePath);
                        if (!StringUtils.ContainsIgnoreCase(fileNames, fileName))
                        {
                            continue;
                        }

                        if (EFileSystemTypeUtils.IsZip(PathUtils.GetExtension(filePath)))
                        {
                            ZipUtils.ExtractZip(filePath, srcDirectoryPath);
                        }
                        else
                        {
                            FileUtils.MoveFile(filePath, PathUtils.Combine(srcDirectoryPath, fileName), true);
                        }
                    }

                    DirectoryUtils.Copy(srcDirectoryPath, directoryPath);
                }
                else if (specialId == 0)
                {
                    if (DataProvider.SpecialDao.IsTitleExists(siteId, title))
                    {
                        return(BadRequest("专题添加失败,专题名称已存在!"));
                    }
                    if (DataProvider.SpecialDao.IsUrlExists(siteId, url))
                    {
                        return(BadRequest("专题添加失败,专题访问地址已存在!"));
                    }

                    var directoryPath    = SpecialManager.GetSpecialDirectoryPath(siteInfo, url);
                    var srcDirectoryPath = SpecialManager.GetSpecialSrcDirectoryPath(directoryPath);
                    DirectoryUtils.CreateDirectoryIfNotExists(srcDirectoryPath);

                    var uploadDirectoryPath = PathUtils.GetTemporaryFilesPath(guid);
                    foreach (var filePath in DirectoryUtils.GetFilePaths(uploadDirectoryPath))
                    {
                        var fileName = PathUtils.GetFileName(filePath);
                        if (!StringUtils.ContainsIgnoreCase(fileNames, fileName))
                        {
                            continue;
                        }

                        if (EFileSystemTypeUtils.IsZip(PathUtils.GetExtension(filePath)))
                        {
                            ZipUtils.ExtractZip(filePath, srcDirectoryPath);
                        }
                        else
                        {
                            FileUtils.MoveFile(filePath, PathUtils.Combine(srcDirectoryPath, fileName), true);
                        }
                    }

                    DirectoryUtils.Copy(srcDirectoryPath, directoryPath);

                    specialId = DataProvider.SpecialDao.Insert(new SpecialInfo
                    {
                        Id      = 0,
                        SiteId  = siteId,
                        Title   = title,
                        Url     = url,
                        AddDate = DateTime.Now
                    });

                    request.AddSiteLog(siteId, "新建专题", $"专题名称:{title}");
                }

                CreateManager.CreateSpecial(siteId, specialId);

                return(Ok(new
                {
                    Value = specialId
                }));
            }
            catch (Exception ex)
            {
                return(InternalServerError(ex));
            }
        }
Ejemplo n.º 14
0
        public CheckResult Check([FromBody] CheckRequest request)
        {
            var req = new AuthenticatedRequest();

            if (!req.IsApiAuthenticated ||
                !AccessTokenManager.IsScope(req.ApiToken, AccessTokenManager.ScopeContents))
            {
                return(Request.Unauthorized <CheckResult>());
            }

            var site = SiteManager.GetSiteInfo(request.SiteId);

            if (site == null)
            {
                return(Request.BadRequest <CheckResult>("无法确定内容对应的站点"));
            }

            var contents = new List <Dictionary <string, object> >();

            foreach (var channelContentId in request.Contents)
            {
                var channel   = ChannelManager.GetChannelInfo(request.SiteId, channelContentId.ChannelId);
                var tableName = ChannelManager.GetTableName(site, channel);
                var content   = ContentManager.GetContentInfo(site, channel, channelContentId.Id);
                if (content == null)
                {
                    continue;
                }

                content.Set(ContentAttribute.CheckUserName, req.AdminName);
                content.Set(ContentAttribute.CheckDate, DateTime.Now);
                content.Set(ContentAttribute.CheckReasons, request.Reasons);
                content.Checked      = true;
                content.CheckedLevel = 0;

                DataProvider.ContentDao.Update(site, channel, content);

                contents.Add(content.ToDictionary());

                var contentCheck = new ContentCheckInfo
                {
                    TableName    = tableName,
                    SiteId       = request.SiteId,
                    ChannelId    = content.ChannelId,
                    ContentId    = content.Id,
                    UserName     = req.AdminName,
                    IsChecked    = true,
                    CheckedLevel = 0,
                    CheckDate    = DateTime.Now,
                    Reasons      = request.Reasons
                };

                DataProvider.ContentCheckDao.Insert(contentCheck);
            }

            req.AddSiteLog(request.SiteId, "批量审核内容");

            foreach (var content in request.Contents)
            {
                CreateManager.CreateContent(request.SiteId, content.ChannelId, content.Id);
            }

            foreach (var distinctChannelId in request.Contents.Select(x => x.ChannelId).Distinct())
            {
                CreateManager.TriggerContentChangedEvent(request.SiteId, distinctChannelId);
            }

            CreateManager.CreateChannel(request.SiteId, request.SiteId);

            return(new CheckResult
            {
                Contents = contents
            });
        }
Ejemplo n.º 15
0
        public IHttpActionResult Update(int siteId, int channelId, int id)
        {
            try
            {
                var  request  = new AuthenticatedRequest();
                var  sourceId = request.GetPostInt(ContentAttribute.SourceId.ToCamelCase());
                bool isAuth;
                if (sourceId == SourceManager.User)
                {
                    isAuth = request.IsUserLoggin && request.UserPermissions.HasChannelPermissions(siteId, channelId, ConfigManager.ChannelPermissions.ContentEdit);
                }
                else
                {
                    isAuth = request.IsApiAuthenticated &&
                             AccessTokenManager.IsScope(request.ApiToken, AccessTokenManager.ScopeContents) ||
                             request.IsUserLoggin &&
                             request.UserPermissions.HasChannelPermissions(siteId, channelId,
                                                                           ConfigManager.ChannelPermissions.ContentEdit) ||
                             request.IsAdminLoggin &&
                             request.AdminPermissions.HasChannelPermissions(siteId, channelId,
                                                                            ConfigManager.ChannelPermissions.ContentEdit);
                }
                if (!isAuth)
                {
                    return(Unauthorized());
                }

                var siteInfo = SiteManager.GetSiteInfo(siteId);
                if (siteInfo == null)
                {
                    return(BadRequest("无法确定内容对应的站点"));
                }

                var channelInfo = ChannelManager.GetChannelInfo(siteId, channelId);
                if (channelInfo == null)
                {
                    return(BadRequest("无法确定内容对应的栏目"));
                }

                var attributes = request.GetPostObject <Dictionary <string, object> >();
                if (attributes == null)
                {
                    return(BadRequest("无法从body中获取内容实体"));
                }

                var adminName = request.AdminName;

                var contentInfo = ContentManager.GetContentInfo(siteInfo, channelInfo, id);
                if (contentInfo == null)
                {
                    return(NotFound());
                }

                contentInfo.Load(attributes);
                contentInfo.Load(new
                {
                    SiteId           = siteId,
                    ChannelId        = channelId,
                    AddUserName      = adminName,
                    LastEditDate     = DateTime.Now,
                    LastEditUserName = adminName,
                    SourceId         = sourceId
                });

                var postCheckedLevel = request.GetPostInt(ContentAttribute.CheckedLevel.ToCamelCase());
                var isChecked        = postCheckedLevel >= siteInfo.Additional.CheckContentLevel;
                var checkedLevel     = postCheckedLevel;

                contentInfo.Load(new
                {
                    IsChecked    = isChecked,
                    CheckedLevel = checkedLevel
                });

                DataProvider.ContentDao.Update(siteInfo, channelInfo, contentInfo);

                foreach (var service in PluginManager.Services)
                {
                    try
                    {
                        service.OnContentFormSubmit(new ContentFormSubmitEventArgs(siteId, channelId, contentInfo.Id, attributes, contentInfo));
                    }
                    catch (Exception ex)
                    {
                        LogUtils.AddErrorLog(service.PluginId, ex, nameof(IService.ContentFormSubmit));
                    }
                }

                if (contentInfo.IsChecked)
                {
                    CreateManager.CreateContent(siteId, channelId, contentInfo.Id);
                    CreateManager.TriggerContentChangedEvent(siteId, channelId);
                }

                request.AddSiteLog(siteId, channelId, contentInfo.Id, "修改内容",
                                   $"栏目:{ChannelManager.GetChannelNameNavigation(siteId, contentInfo.ChannelId)},内容标题:{contentInfo.Title}");

                return(Ok(new
                {
                    Value = contentInfo.ToDictionary()
                }));
            }
            catch (Exception ex)
            {
                LogUtils.AddErrorLog(ex);
                return(InternalServerError(ex));
            }
        }
        public IHttpActionResult Submit()
        {
            try
            {
                var request = new AuthenticatedRequest();

                var siteId            = request.GetPostInt("siteId");
                var channelId         = request.GetPostInt("channelId");
                var channelContentIds =
                    MinContentInfo.ParseMinContentInfoList(request.GetPostString("channelContentIds"));
                var isRetainFiles = request.GetPostBool("isRetainFiles");

                if (!request.IsAdminLoggin ||
                    !request.AdminPermissionsImpl.HasChannelPermissions(siteId, channelId,
                                                                        ConfigManager.ChannelPermissions.ContentDelete))
                {
                    return(Unauthorized());
                }

                var siteInfo = SiteManager.GetSiteInfo(siteId);
                if (siteInfo == null)
                {
                    return(BadRequest("无法确定内容对应的站点"));
                }

                var channelInfo = ChannelManager.GetChannelInfo(siteId, channelId);
                if (channelInfo == null)
                {
                    return(BadRequest("无法确定内容对应的栏目"));
                }

                if (!isRetainFiles)
                {
                    foreach (var channelContentId in channelContentIds)
                    {
                        DeleteManager.DeleteContent(siteInfo, channelContentId.ChannelId, channelContentId.Id);
                    }
                }

                var tableName = ChannelManager.GetTableName(siteInfo, channelInfo);

                if (channelContentIds.Count == 1)
                {
                    var channelContentId = channelContentIds[0];
                    var contentTitle     = DataProvider.ContentDao.GetValue(tableName, channelContentId.Id, ContentAttribute.Title);
                    request.AddSiteLog(siteId, channelContentId.ChannelId, channelContentId.Id, "删除内容",
                                       $"栏目:{ChannelManager.GetChannelNameNavigation(siteId, channelContentId.ChannelId)},内容标题:{contentTitle}");
                }
                else
                {
                    request.AddSiteLog(siteId, "批量删除内容",
                                       $"栏目:{ChannelManager.GetChannelNameNavigation(siteId, channelId)},内容条数:{channelContentIds.Count}");
                }

                foreach (var distinctChannelId in channelContentIds.Select(x => x.ChannelId).Distinct())
                {
                    var contentIdList = channelContentIds.Where(x => x.ChannelId == distinctChannelId)
                                        .Select(x => x.Id).ToList();
                    DataProvider.ContentDao.UpdateTrashContents(siteId, distinctChannelId, tableName, contentIdList);

                    CreateManager.TriggerContentChangedEvent(siteId, distinctChannelId);
                }

                return(Ok(new
                {
                    Value = true
                }));
            }
            catch (Exception ex)
            {
                LogUtils.AddErrorLog(ex);
                return(InternalServerError(ex));
            }
        }
Ejemplo n.º 17
0
        public IHttpActionResult Submit()
        {
            try
            {
                var request = new AuthenticatedRequest();

                var siteId       = request.GetPostInt("siteId");
                var channelId    = request.GetPostInt("channelId");
                var importType   = request.GetPostString("importType");
                var checkedLevel = request.GetPostInt("checkedLevel");
                var isOverride   = request.GetPostBool("isOverride");
                var fileNames    = request.GetPostObject <List <string> >("fileNames");

                if (!request.IsAdminLoggin ||
                    !request.AdminPermissionsImpl.HasChannelPermissions(siteId, channelId,
                                                                        ConfigManager.ChannelPermissions.ContentAdd))
                {
                    return(Unauthorized());
                }

                var siteInfo = SiteManager.GetSiteInfo(siteId);
                if (siteInfo == null)
                {
                    return(BadRequest("无法确定内容对应的站点"));
                }

                var channelInfo = ChannelManager.GetChannelInfo(siteId, channelId);
                if (channelInfo == null)
                {
                    return(BadRequest("无法确定内容对应的栏目"));
                }

                var isChecked = checkedLevel >= siteInfo.Additional.CheckContentLevel;

                if (importType == "zip")
                {
                    foreach (var fileName in fileNames)
                    {
                        var localFilePath = PathUtils.GetTemporaryFilesPath(fileName);

                        if (!EFileSystemTypeUtils.Equals(EFileSystemType.Zip, PathUtils.GetExtension(localFilePath)))
                        {
                            continue;
                        }

                        var importObject = new ImportObject(siteId, request.AdminName);
                        importObject.ImportContentsByZipFile(channelInfo, localFilePath, isOverride, isChecked, checkedLevel, request.AdminId, 0, SourceManager.Default);
                    }
                }

                else if (importType == "csv")
                {
                    foreach (var fileName in fileNames)
                    {
                        var localFilePath = PathUtils.GetTemporaryFilesPath(fileName);

                        if (!EFileSystemTypeUtils.Equals(EFileSystemType.Csv, PathUtils.GetExtension(localFilePath)))
                        {
                            continue;
                        }

                        var importObject = new ImportObject(siteId, request.AdminName);
                        importObject.ImportContentsByCsvFile(channelInfo, localFilePath, isOverride, isChecked, checkedLevel, request.AdminId, 0, SourceManager.Default);
                    }
                }
                else if (importType == "txt")
                {
                    foreach (var fileName in fileNames)
                    {
                        var localFilePath = PathUtils.GetTemporaryFilesPath(fileName);
                        if (!EFileSystemTypeUtils.Equals(EFileSystemType.Txt, PathUtils.GetExtension(localFilePath)))
                        {
                            continue;
                        }

                        var importObject = new ImportObject(siteId, request.AdminName);
                        importObject.ImportContentsByTxtFile(channelInfo, localFilePath, isOverride, isChecked, checkedLevel, request.AdminId, 0, SourceManager.Default);
                    }
                }

                request.AddSiteLog(siteId, channelId, 0, "导入内容", string.Empty);

                return(Ok(new
                {
                    Value = true
                }));
            }
            catch (Exception ex)
            {
                LogUtils.AddErrorLog(ex);
                return(InternalServerError(ex));
            }
        }
        public IHttpActionResult Submit()
        {
            try
            {
                var request = new AuthenticatedRequest();

                var siteId = request.GetPostInt("siteId");
                //var channelId = request.GetPostInt("channelId");
                var channelContentIds =
                    MinContentInfo.ParseMinContentInfoList(request.GetPostString("channelContentIds"));
                var pageType    = request.GetPostString("pageType");
                var groupNames  = TranslateUtils.StringCollectionToStringList(request.GetPostString("groupNames"));
                var groupName   = request.GetPostString("groupName");
                var description = request.GetPostString("description");

                if (!request.IsAdminLoggin)
                {
                    return(Unauthorized());
                }

                var siteInfo = SiteManager.GetSiteInfo(siteId);
                if (siteInfo == null)
                {
                    return(BadRequest("无法确定内容对应的站点"));
                }

                if (pageType == "setGroup")
                {
                    foreach (var channelContentId in channelContentIds)
                    {
                        var channelInfo = ChannelManager.GetChannelInfo(siteId, channelContentId.ChannelId);
                        var contentInfo = ContentManager.GetContentInfo(siteInfo, channelInfo, channelContentId.Id);
                        if (contentInfo == null)
                        {
                            continue;
                        }

                        var list = TranslateUtils.StringCollectionToStringList(contentInfo.GroupNameCollection);
                        foreach (var name in groupNames)
                        {
                            if (!list.Contains(name))
                            {
                                list.Add(name);
                            }
                        }
                        contentInfo.GroupNameCollection = TranslateUtils.ObjectCollectionToString(list);

                        DataProvider.ContentDao.Update(siteInfo, channelInfo, contentInfo);
                    }

                    request.AddSiteLog(siteId, "批量设置内容组", $"内容组:{TranslateUtils.ObjectCollectionToString(groupNames)}");
                }
                else if (pageType == "cancelGroup")
                {
                    foreach (var channelContentId in channelContentIds)
                    {
                        var channelInfo = ChannelManager.GetChannelInfo(siteId, channelContentId.ChannelId);
                        var contentInfo = ContentManager.GetContentInfo(siteInfo, channelInfo, channelContentId.Id);
                        if (contentInfo == null)
                        {
                            continue;
                        }

                        var list = TranslateUtils.StringCollectionToStringList(contentInfo.GroupNameCollection);
                        foreach (var name in groupNames)
                        {
                            if (list.Contains(name))
                            {
                                list.Remove(name);
                            }
                        }
                        contentInfo.GroupNameCollection = TranslateUtils.ObjectCollectionToString(list);

                        DataProvider.ContentDao.Update(siteInfo, channelInfo, contentInfo);
                    }

                    request.AddSiteLog(siteId, "批量取消内容组", $"内容组:{TranslateUtils.ObjectCollectionToString(groupNames)}");
                }
                else if (pageType == "addGroup")
                {
                    var groupInfo = new ContentGroupInfo
                    {
                        GroupName   = AttackUtils.FilterXss(groupName),
                        SiteId      = siteId,
                        Description = AttackUtils.FilterXss(description)
                    };

                    if (ContentGroupManager.IsExists(siteId, groupInfo.GroupName))
                    {
                        DataProvider.ContentGroupDao.Update(groupInfo);
                        request.AddSiteLog(siteId, "修改内容组", $"内容组:{groupInfo.GroupName}");
                    }
                    else
                    {
                        DataProvider.ContentGroupDao.Insert(groupInfo);
                        request.AddSiteLog(siteId, "添加内容组", $"内容组:{groupInfo.GroupName}");
                    }

                    foreach (var channelContentId in channelContentIds)
                    {
                        var channelInfo = ChannelManager.GetChannelInfo(siteId, channelContentId.ChannelId);
                        var contentInfo = ContentManager.GetContentInfo(siteInfo, channelInfo, channelContentId.Id);
                        if (contentInfo == null)
                        {
                            continue;
                        }

                        var list = TranslateUtils.StringCollectionToStringList(contentInfo.GroupNameCollection);
                        if (!list.Contains(groupInfo.GroupName))
                        {
                            list.Add(groupInfo.GroupName);
                        }
                        contentInfo.GroupNameCollection = TranslateUtils.ObjectCollectionToString(list);

                        DataProvider.ContentDao.Update(siteInfo, channelInfo, contentInfo);
                    }

                    request.AddSiteLog(siteId, "批量设置内容组", $"内容组:{groupInfo.GroupName}");
                }

                return(Ok(new
                {
                    Value = true
                }));
            }
            catch (Exception ex)
            {
                LogUtils.AddErrorLog(ex);
                return(InternalServerError(ex));
            }
        }
        public IHttpActionResult Submit()
        {
            try
            {
                var request = new AuthenticatedRequest();
                var siteId  = request.SiteId;

                if (!request.IsAdminLoggin ||
                    !request.AdminPermissionsImpl.HasSitePermissions(siteId, ConfigManager.SitePermissions.ConfigContents))
                {
                    return(Unauthorized());
                }

                var siteInfo = SiteManager.GetSiteInfo(siteId);

                var isSaveImageInTextEditor    = request.GetPostBool("isSaveImageInTextEditor", true);
                var isAutoPageInTextEditor     = request.GetPostBool("isAutoPageInTextEditor");
                var autoPageWordNum            = request.GetPostInt("autoPageWordNum", siteInfo.Additional.AutoPageWordNum);
                var isContentTitleBreakLine    = request.GetPostBool("isContentTitleBreakLine", true);
                var isContentSubTitleBreakLine = request.GetPostBool("isContentSubTitleBreakLine", true);
                var isAutoCheckKeywords        = request.GetPostBool("isAutoCheckKeywords", true);
                var isCheckContentLevel        = request.GetPostBool("isCheckContentLevel");
                var checkContentLevel          = request.GetPostInt("checkContentLevel");
                var checkContentDefaultLevel   = request.GetPostInt("checkContentDefaultLevel");

                siteInfo.Additional.IsSaveImageInTextEditor = isSaveImageInTextEditor;

                var isReCalculate = false;
                if (isAutoPageInTextEditor)
                {
                    if (siteInfo.Additional.IsAutoPageInTextEditor == false)
                    {
                        isReCalculate = true;
                    }
                    else if (siteInfo.Additional.AutoPageWordNum != autoPageWordNum)
                    {
                        isReCalculate = true;
                    }
                }

                siteInfo.Additional.IsAutoPageInTextEditor     = isAutoPageInTextEditor;
                siteInfo.Additional.AutoPageWordNum            = autoPageWordNum;
                siteInfo.Additional.IsContentTitleBreakLine    = isContentTitleBreakLine;
                siteInfo.Additional.IsContentSubTitleBreakLine = isContentSubTitleBreakLine;
                siteInfo.Additional.IsAutoCheckKeywords        = isAutoCheckKeywords;

                siteInfo.Additional.IsCheckContentLevel = isCheckContentLevel;
                if (siteInfo.Additional.IsCheckContentLevel)
                {
                    siteInfo.Additional.CheckContentLevel = checkContentLevel;
                }
                siteInfo.Additional.CheckContentDefaultLevel = checkContentDefaultLevel;

                DataProvider.SiteDao.Update(siteInfo);

                if (isReCalculate)
                {
                    DataProvider.ContentDao.SetAutoPageContentToSite(siteInfo);
                }

                request.AddSiteLog(siteId, "修改内容设置");

                return(Ok(new
                {
                    Value = siteInfo,
                    Config = siteInfo.Additional,
                }));
            }
            catch (Exception ex)
            {
                return(InternalServerError(ex));
            }
        }