示例#1
0
        public void GetExtendValuesList(int siteId, int relationType, IList <int> idList, DataReaderFunc func)
        {
            if (idList == null || idList.Count == 0)
            {
                return;
            }
            string ids    = "";
            int    tmpInt = 0;

            foreach (int i in idList)
            {
                if (tmpInt++ != 0)
                {
                    ids += ",";
                }
                ids += i.ToString();
            }

            base.ExecuteReader(SqlQueryHelper.Format(DbSql.DataExtend_GetExtendValuesList,
                                                     new object[, ] {
                { "@siteId", siteId },
                { "@relationType", relationType }
            }, ids
                                                     ), func);
        }
示例#2
0
文件: LinkDal.cs 项目: laulunsi/cms
        public void SaveLinksOfContent(string contentType, int contentId, IList <IContentLink> list)
        {
            if (list.Count == 0)
            {
                return;
            }
            SqlQuery[] querys = new SqlQuery[list.Count];

            int i = 0;

            foreach (IContentLink link in list)
            {
                querys[i++] = SqlQueryHelper.Format(
                    (link.Id <= 0 ? DbSql.Link_InsertRelatedLink:DbSql.Link_UpdateRelatedLink),
                    new object[, ] {
                    { "@contentType", contentType },
                    { "@contentId", contentId },
                    { "@id", link.Id },
                    { "@relatedSiteId", link.RelatedSiteId },
                    { "@relatedContentId", link.RelatedContentId },
                    { "@relatedIndent", link.RelatedIndent },
                    { "@enabled", link.Enabled }
                });
            }

            base.ExecuteNonQuery(querys);
        }
示例#3
0
        public void InsertDataExtendFields(ExtendRelationType relationType, int relationId, IDictionary <int, string> extendData)
        {
            if (extendData.Count == 0)
            {
                return;
            }

            string           sql    = base.OptimizeSql(DbSql.DataExtend_InsertOrUpdateFieldValue);
            IList <SqlQuery> querys = new List <SqlQuery>();

            querys.Add(SqlQueryHelper.Format(DbSql.DataExtend_ClearupExtendFielValue,
                                             new object[, ] {
                { "@relationType", relationType },
                { "@relationId", relationId }
            }
                                             ));

            foreach (int key in extendData.Keys)
            {
                if (!String.IsNullOrEmpty(extendData[key]))
                {
                    querys.Add(new SqlQuery(sql, new object[, ] {
                        { "@relationType", relationType },
                        { "@relationId", relationId },
                        { "@fieldId", key },
                        { "@fieldValue", extendData[key] }
                    }));
                }
            }

            base.ExecuteNonQuery(querys.ToArray());
        }
示例#4
0
文件: LinkDal.cs 项目: laulunsi/cms
 public void ReadLinksOfContent(string contentType, int contentId, DataReaderFunc func)
 {
     base.ExecuteReader(
         SqlQueryHelper.Format(DbSql.Link_GetRelatedLinks, new object[, ] {
         { "@contentType", contentType },
         { "@contentId", contentId }
     }), func);
 }
示例#5
0
文件: LinkDal.cs 项目: laulunsi/cms
 public void GetSiteLinkById(int siteId, int linkId, DataReaderFunc func)
 {
     base.ExecuteReader(
         SqlQueryHelper.Format(DbSql.Link_GetSiteLinkById, new object[, ] {
         { "@siteId", siteId },
         { "@linkId", linkId }
     }), func);
 }
示例#6
0
文件: LinkDal.cs 项目: laulunsi/cms
 /// <summary>
 /// 获取所有的友情链接
 /// </summary>
 /// <returns></returns>
 public void GetAllSiteLinks(int siteId, SiteLinkType type, DataReaderFunc func)
 {
     base.ExecuteReader(
         SqlQueryHelper.Format(DbSql.Link_GetSiteLinksByLinkType, new object[, ] {
         { "@siteId", siteId },
         { "@linkType", (int)type }
     }), func);
 }
示例#7
0
文件: LinkDal.cs 项目: laulunsi/cms
 public void RemoveRelatedLinks(string contenType, int contentId, string ids)
 {
     base.ExecuteNonQuery(
         SqlQueryHelper.Format(DbSql.Link_RemoveRelatedLinks, new object[, ] {
         { "@contentType", contenType },
         { "@contentId", contentId }
     }, ids));
 }
示例#8
0
        /************ 分页 ****************/

        /// <summary>
        /// 获取栏目分页文档
        /// </summary>
        /// <param name="siteId"></param>
        /// <param name="lft"></param>
        /// <param name="pageSize"></param>
        /// <param name="skipSize"></param>
        /// <param name="currentPageIndex"></param>
        /// <param name="rgt"></param>
        /// <param name="recordCount"></param>
        /// <param name="pages"></param>
        /// <returns></returns>
        public DataTable GetPagedArchives(
            int siteId, int[] catIdArray,
            int pageSize, int skipSize, ref int currentPageIndex,
            out int recordCount, out int pages)
        {
            object[,] data = new object[, ] {
                { "@siteId", siteId },
            };
            String catIdArrayString = this.IntArrayToString(catIdArray);

            String sql = SQLRegex.Replace(DbSql.ArchiveGetPagedArchivesCountSqlPagerqurey, m =>
            {
                switch (m.Groups[1].Value)
                {
                case "catIdArray": return(catIdArrayString);
                }
                return(String.Empty);
            });

            //获取记录条数
            recordCount = int.Parse(base.ExecuteScalar(SqlQueryHelper.Format(sql, data)).ToString());

            pages = recordCount / pageSize;
            if (recordCount % pageSize != 0)
            {
                pages++;
            }

            //验证当前页数
            if (currentPageIndex > pages && currentPageIndex != 1)
            {
                currentPageIndex = pages;
            }
            if (currentPageIndex < 1)
            {
                currentPageIndex = 1;
            }

            //计算分页
            int skipCount = pageSize * (currentPageIndex - 1);

            //如果调过记录为0条,且为OLEDB时候,则用sql1
            sql = DbSql.ArchiveGetPagedArchivesByCategoryIdPagerquery;

            sql = SQLRegex.Replace(sql, m =>
            {
                switch (m.Groups[1].Value)
                {
                case "catIdArray": return(catIdArrayString);

                case "skipsize": return((skipCount + skipSize).ToString());

                case "pagesize": return(pageSize.ToString());
                }
                return(null);
            });
            return(base.GetDataSet(SqlQueryHelper.Format(sql, data)).Tables[0]);
        }
示例#9
0
 public void GetExtendFieldByName(int siteId, string name, string type, DataReaderFunc rd)
 {
     base.ExecuteReader(
         SqlQueryHelper.Format(DbSql.DataExtend_GetExtendFieldByName, new object[, ]
     {
         { "@siteId", siteId },
         { "@name", name },
         { "@type", type }
     }), rd);
 }
示例#10
0
 public int GetCategoryExtendRefrenceNum(int siteId, int categoryId, int extendFieldId)
 {
     return(int.Parse(base.ExecuteScalar(
                          SqlQueryHelper.Format(DbSql.DataExtend_GetCategoryExtendRefrenceNum, new object[, ] {
         { "@siteId", siteId },
         { "@categoryId", categoryId },
         { "@fieldId", extendFieldId }
     })
                          ).ToString()));
 }
示例#11
0
 public void SaveSortNumber(int archiveId, int sortNumber)
 {
     base.ExecuteNonQuery(
         SqlQueryHelper.Format(DbSql.ArchiveUpdateSortNumber,
                               new object[, ]
     {
         { "@archiveId", archiveId },
         { "@sort_number", sortNumber },
     }));
 }
示例#12
0
 public void GetArchivesExtendValues(int siteId, int relationType, string categoryTag, int number, int skipSize,
                                     DataReaderFunc func)
 {
     base.ExecuteReader(
         SqlQueryHelper.Format(DbSql.Archive_GetArchivesExtendValues,
                               new object[, ]
     {
         { "@siteId", siteId },
         { "@tag", categoryTag },
         { "@relationType", relationType }
     }, skipSize.ToString(),
                               number.ToString()
                               ), func);
 }
示例#13
0
        public int GetMaxSortNumber(int siteId)
        {
            object obj = base.ExecuteScalar(
                SqlQueryHelper.Format(DbSql.ArchiveGetMaxSortNumber,
                                      new object[, ]
            {
                { "@siteId", siteId },
            })).ToString();

            if (obj == DBNull.Value || (string)obj == "")
            {
                return(0);
            }
            return(int.Parse(obj.ToString()));
        }
示例#14
0
        public void GetSelftAndChildArchiveExtendValues(int siteId, int relationType, int lft, int rgt, int number, int skipSize, DataReaderFunc func)
        {
            /*
             * base.ExecuteReader(
             *     new SqlQuery(String.Format(base.OptimizeSQL(SP.Archive_GetSelfAndChildArchives), number),
             *      new object[,]{
             *       }), func
             * );
             */

            // throw new Exception( String.Format(DbSql.Archive_GetSelfAndChildArchiveExtendValues,skipSize.ToString(),number.ToString()));
            base.ExecuteReader(
                SqlQueryHelper.Format(DbSql.Archive_GetSelfAndChildArchiveExtendValues,
                                      new object[, ] {
                { "@siteId", siteId },
                { "@lft", lft },
                { "@rgt", rgt },
                { "@relationType", relationType }
            }, skipSize.ToString(),
                                      number.ToString()
                                      ), func);
        }
示例#15
0
        /// <summary>
        /// 在指定栏目下搜索关键词相关的内容
        /// </summary>
        /// <param name="categoryRgt"></param>
        /// <param name="keyword"></param>
        /// <param name="pageSize"></param>
        /// <param name="currentPageIndex"></param>
        /// <param name="recordCount"></param>
        /// <param name="pageCount"></param>
        /// <param name="orderby"></param>
        /// <param name="siteId"></param>
        /// <param name="categoryLft"></param>
        /// <param name="func"></param>
        /// <returns></returns>
        public void SearchArchivesByCategory(int siteId,
                                             int categoryLft, int categoryRgt, string keyword,
                                             int pageSize, int currentPageIndex,
                                             out int recordCount, out int pageCount,
                                             string orderby, DataReaderFunc func)
        {
            string condition = SqlConst.Archive_NotSystemAndHidden;


            if (String.IsNullOrEmpty(orderby))
            {
                orderby = String.Intern("ORDER BY $PREFIX_archive.sort_number DESC");
            }

            object[,] data = new object[, ]
            {
                { "@siteId", siteId },
                { "@lft", categoryLft },
                { "@rgt", categoryRgt }
            };

            //为第一页时
            const string sql1 = @"SELECT TOP $[pagesize] $PREFIX_archive.id AS ID,* 
                                  FROM $PREFIX_archive INNER JOIN $PREFIX_category 
                                  ON $PREFIX_archive.[CgID]=$PREFIX_category.id
                                  WHERE $[condition] AND $PREFIX_category.site_id=@siteId AND ($PREFIX_category.lft>=@lft
                                   AND $PREFIX_category.rgt<=@rgt) AND ([Title] LIKE 
                                  '%$[keyword]%' OR [Outline] LIKE '%$[keyword]%' 
                                   OR [Content] LIKE '%$[keyword]%' OR [Tags] LIKE '%$[keyword]%')
                                   $[orderby],$PREFIX_archive.id";

            //记录数
            recordCount = int.Parse(base.ExecuteScalar(
                                        SqlQueryHelper.Format(DbSql.ArchiveGetSearchRecordCountByCategoryId,
                                                              data,
                                                              keyword,
                                                              condition
                                                              )).ToString());

            //页数
            pageCount = recordCount / pageSize;
            if (recordCount % pageSize != 0)
            {
                pageCount++;
            }

            //对当前页数进行验证
            if (currentPageIndex > pageCount && currentPageIndex != 1)
            {
                currentPageIndex = pageCount;
            }
            if (currentPageIndex < 1)
            {
                currentPageIndex = 1;
            }

            //跳过记录数
            int skipCount = pageSize * (currentPageIndex - 1);


            string sql = skipCount == 0 && base.DbType == DataBaseType.OLEDB ?
                         sql1 :
                         DbSql.ArchiveGetPagedSearchArchivesByCategoryId;

            sql = SQLRegex.Replace(sql, (match) =>
            {
                switch (match.Groups[1].Value)
                {
                case "siteid": return(siteId.ToString());

                case "condition": return(condition);

                case "pagesize": return(pageSize.ToString());

                case "skipsize": return(skipCount.ToString());

                case "keyword": return(keyword);

                case "orderby": return(orderby);
                }
                return(null);
            });


            base.ExecuteReader(SqlQueryHelper.Format(sql, data), func);
        }
示例#16
0
        /// <summary>
        /// 搜索关键词相关的内容
        /// </summary>
        /// <param name="siteId"></param>
        /// <param name="categoryRgt"></param>
        /// <param name="onlyMatchTitle"></param>
        /// <param name="keyword"></param>
        /// <param name="pageSize"></param>
        /// <param name="currentPageIndex"></param>
        /// <param name="recordCount"></param>
        /// <param name="pageCount"></param>
        /// <param name="orderby"></param>
        /// <param name="func"></param>
        /// <param name="categoryLft"></param>
        /// <returns></returns>
        public void SearchArchives(int siteId, int categoryLft, int categoryRgt, bool onlyMatchTitle,
                                   string keyword, int pageSize, int currentPageIndex, out int recordCount, out int pageCount,
                                   string orderby, DataReaderFunc func)
        {
            base.CheckSqlInject(keyword, orderby);
            StringBuilder sb = new StringBuilder(SqlConst.Archive_NotSystemAndHidden);

            if (siteId > 0)
            {
                sb.Append(" AND $PREFIX_category.site_id=").Append(siteId.ToString());
            }

            if (categoryLft > 0 && categoryRgt > 0)
            {
                sb.Append(" AND ($PREFIX_category.lft>=").Append(categoryLft.ToString())
                .Append(" AND $PREFIX_category.rgt<=").Append(categoryRgt).Append(")");
            }

            if (onlyMatchTitle)
            {
                sb.Append(" AND title LIKE '%").Append(keyword).Append("%'");
            }
            else
            {
                sb.Append(" AND ( title LIKE '%").Append(keyword).Append("%' OR outline LIKE '%").Append(keyword).Append("%' OR content LIKE '%").Append(keyword).Append("%')");
            }

            string condition = sb.ToString();

            //排序规则
            if (String.IsNullOrEmpty(orderby))
            {
                orderby = String.Intern("ORDER BY $PREFIX_archive.sort_number DESC");
            }


            //记录数
            recordCount = int.Parse(base.ExecuteScalar(SqlQueryHelper.Format(DbSql.Archive_GetSearchRecordCount, condition)).ToString());

            //页数
            pageCount = recordCount / pageSize;
            if (recordCount % pageSize != 0)
            {
                pageCount++;
            }

            //对当前页数进行验证
            if (currentPageIndex > pageCount && currentPageIndex != 1)
            {
                currentPageIndex = pageCount;
            }
            if (currentPageIndex < 1)
            {
                currentPageIndex = 1;
            }

            //跳过记录数
            int skipCount = pageSize * (currentPageIndex - 1);

            //如果调过记录为0条,且为OLEDB时候,则用sql1
            string sql = DbSql.Archive_GetPagedSearchArchives;

            sql = SQLRegex.Replace(sql, (match) =>
            {
                switch (match.Groups[1].Value)
                {
                case "condition": return(condition);

                case "pagesize": return(pageSize.ToString());

                case "skipsize": return(skipCount.ToString());

                case "orderby": return(orderby);
                }
                return(null);
            });

            base.ExecuteReader(base.NewQuery(sql, null), func);
        }