Beispiel #1
0
        public Dictionary <int, List <ContentGroupInfo> > GetAllContentGroups()
        {
            var allDict = new Dictionary <int, List <ContentGroupInfo> >();

            var sqlString =
                $"SELECT GroupName, SiteId, Taxis, Description FROM {TableName} ORDER BY Taxis DESC, GroupName";

            using (var rdr = ExecuteReader(sqlString))
            {
                while (rdr.Read())
                {
                    var i     = 0;
                    var group = new ContentGroupInfo(GetString(rdr, i++), GetInt(rdr, i++), GetInt(rdr, i++),
                                                     GetString(rdr, i));

                    List <ContentGroupInfo> list;
                    allDict.TryGetValue(group.SiteId, out list);

                    if (list == null)
                    {
                        list = new List <ContentGroupInfo>();
                    }

                    list.Add(group);

                    allDict[group.SiteId] = list;
                }
                rdr.Close();
            }

            return(allDict);
        }
Beispiel #2
0
        private static AtomEntry ExportContentGroupInfo(ContentGroupInfo contentGroupInfo)
        {
            var entry = AtomUtility.GetEmptyEntry();

            AtomUtility.AddDcElement(entry.AdditionalElements, "IsContentGroup", true.ToString());
            AtomUtility.AddDcElement(entry.AdditionalElements, "ContentGroupName", contentGroupInfo.ContentGroupName);
            AtomUtility.AddDcElement(entry.AdditionalElements, "Taxis", contentGroupInfo.Taxis.ToString());
            AtomUtility.AddDcElement(entry.AdditionalElements, "Description", contentGroupInfo.Description);

            return(entry);
        }
Beispiel #3
0
        public void Update(ContentGroupInfo contentGroup)
        {
            var updateParms = new IDataParameter[]
            {
                GetParameter(ParmDescription, DataType.Text, contentGroup.Description),
                GetParameter(ParmGroupName, DataType.VarChar, 255, contentGroup.GroupName),
                GetParameter(ParmSiteId, DataType.Integer, contentGroup.SiteId)
            };

            ExecuteNonQuery(SqlUpdate, updateParms);
        }
Beispiel #4
0
        public void Update(ContentGroupInfo contentGroup)
        {
            var updateParms = new IDataParameter[]
            {
                GetParameter(ParmDescription, EDataType.NText, contentGroup.Description),
                GetParameter(ParmGroupName, EDataType.NVarChar, 255, contentGroup.ContentGroupName),
                GetParameter(ParmPublishmentsystemid, EDataType.Integer, contentGroup.PublishmentSystemId)
            };

            ExecuteNonQuery(SqlUpdateContentgroup, updateParms);
        }
Beispiel #5
0
        public override void Submit_OnClick(object sender, EventArgs e)
        {
            var isChanged = false;

            var contentGroupInfo = new ContentGroupInfo
            {
                GroupName   = PageUtils.FilterXss(TbContentGroupName.Text),
                SiteId      = SiteId,
                Description = TbDescription.Text
            };

            if (Body.IsQueryExists("GroupName"))
            {
                try
                {
                    DataProvider.ContentGroupDao.Update(contentGroupInfo);
                    Body.AddSiteLog(SiteId, "修改内容组", $"内容组:{contentGroupInfo.GroupName}");
                    isChanged = true;
                }
                catch (Exception ex)
                {
                    FailMessage(ex, "内容组修改失败!");
                }
            }
            else
            {
                var contentGroupNameList = DataProvider.ContentGroupDao.GetGroupNameList(SiteId);
                if (contentGroupNameList.IndexOf(TbContentGroupName.Text) != -1)
                {
                    FailMessage("内容组添加失败,内容组名称已存在!");
                }
                else
                {
                    try
                    {
                        DataProvider.ContentGroupDao.Insert(contentGroupInfo);
                        Body.AddSiteLog(SiteId, "添加内容组",
                                        $"内容组:{contentGroupInfo.GroupName}");
                        isChanged = true;
                    }
                    catch (Exception ex)
                    {
                        FailMessage(ex, "内容组添加失败!");
                    }
                }
            }

            if (isChanged)
            {
                LayerUtils.Close(Page);
            }
        }
        public static AtomEntry Export(ContentGroupInfo groupInfo)
        {
            var entry = AtomUtility.GetEmptyEntry();

            AtomUtility.AddDcElement(entry.AdditionalElements, "IsContentGroup", true.ToString());
            AtomUtility.AddDcElement(entry.AdditionalElements, new List <string> {
                nameof(ContentGroupInfo.GroupName), "ContentGroupName"
            }, groupInfo.GroupName);
            AtomUtility.AddDcElement(entry.AdditionalElements, nameof(ContentGroupInfo.Taxis), groupInfo.Taxis.ToString());
            AtomUtility.AddDcElement(entry.AdditionalElements, nameof(ContentGroupInfo.Description), groupInfo.Description);

            return(entry);
        }
Beispiel #7
0
        public void Insert(ContentGroupInfo contentGroup)
        {
            var maxTaxis = GetMaxTaxis(contentGroup.SiteId);

            contentGroup.Taxis = maxTaxis + 1;

            var insertParms = new IDataParameter[]
            {
                GetParameter(ParmGroupName, DataType.VarChar, 255, contentGroup.GroupName),
                GetParameter(ParmSiteId, DataType.Integer, contentGroup.SiteId),
                GetParameter(ParmTaxis, DataType.Integer, contentGroup.Taxis),
                GetParameter(ParmDescription, DataType.Text, contentGroup.Description)
            };

            ExecuteNonQuery(SqlInsert, insertParms);
        }
Beispiel #8
0
        public void Insert(ContentGroupInfo contentGroup)
        {
            var maxTaxis = GetMaxTaxis(contentGroup.PublishmentSystemId);

            contentGroup.Taxis = maxTaxis + 1;

            var insertParms = new IDataParameter[]
            {
                GetParameter(ParmGroupName, EDataType.NVarChar, 255, contentGroup.ContentGroupName),
                GetParameter(ParmPublishmentsystemid, EDataType.Integer, contentGroup.PublishmentSystemId),
                GetParameter(ParmTaxis, EDataType.Integer, contentGroup.Taxis),
                GetParameter(ParmDescription, EDataType.NText, contentGroup.Description)
            };

            ExecuteNonQuery(SqlInsertContentgroup, insertParms);
        }
Beispiel #9
0
        public ContentGroupInfo GetContentGroupInfo(string groupName, int siteId)
        {
            ContentGroupInfo contentGroup = null;

            string sqlString =
                $"SELECT GroupName, SiteId, Taxis, Description FROM siteserver_ContentGroup WHERE GroupName = @GroupName AND SiteId = {siteId}";

            var selectParms = new IDataParameter[]
            {
                GetParameter(ParmGroupName, DataType.VarChar, 255, groupName)
            };

            using (var rdr = ExecuteReader(sqlString, selectParms))
            {
                if (rdr.Read())
                {
                    var i = 0;
                    contentGroup = new ContentGroupInfo(GetString(rdr, i++), GetInt(rdr, i++), GetInt(rdr, i++), GetString(rdr, i));
                }
                rdr.Close();
            }

            return(contentGroup);
        }
        public IHttpActionResult Submit()
        {
            try
            {
                var request = new RequestImpl();

                var siteId        = request.GetPostInt("siteId");
                var channelId     = request.GetPostInt("channelId");
                var contentIdList = TranslateUtils.StringCollectionToIntList(request.GetPostString("contentIds"));
                var pageType      = request.GetPostString("pageType");
                var groupNames    = TranslateUtils.StringCollectionToStringList(request.GetPostString("groupNames"));
                var groupName     = request.GetPostString("groupName");
                var description   = request.GetPostString("description");

                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 == "setGroup")
                {
                    foreach (var contentId in contentIdList)
                    {
                        var contentInfo = ContentManager.GetContentInfo(siteInfo, channelInfo, contentId);
                        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 contentId in contentIdList)
                    {
                        var contentInfo = ContentManager.GetContentInfo(siteInfo, channelInfo, contentId);
                        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 contentId in contentIdList)
                    {
                        var contentInfo = ContentManager.GetContentInfo(siteInfo, channelInfo, contentId);
                        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 = contentIdList
                }));
            }
            catch (Exception ex)
            {
                LogUtils.AddErrorLog(ex);
                return(InternalServerError(ex));
            }
        }