Пример #1
0
        private void DeleteSearched()
        {
            using (new ErrorScope())
            {
                MessageDisplay msgDisplay = CreateMessageDisplay();

                try
                {
                    AdminTagFilter filter = AdminTagFilter.GetFromFilter("filter");
                    if (filter != null)
                    {
                        bool success = TagBO.Instance.DeleteTags(filter);
                        if (!success)
                        {
                            CatchError <ErrorInfo>(delegate(ErrorInfo error)
                            {
                                msgDisplay.AddError(error);
                            });
                        }
                        else
                        {
                        }
                    }
                }
                catch (Exception ex)
                {
                    msgDisplay.AddError(ex.Message);
                }
            }
        }
Пример #2
0
        /// <summary>
        /// 高级删除
        /// </summary>
        public bool DeleteTags(AdminTagFilter filter)
        {
            if (SafeMode)
            {
                if (!IsExecutorLogin)
                {
                    ThrowError(new NotLoginError());
                    return(false);
                }
            }

            if (filter == null)
            {
                filter = new AdminTagFilter();
            }

            if (SafeMode)
            {
                //TODO:
            }

            bool success = TagDao.Instance.DeleteTagsByFilter(filter);

            if (success)
            {
                CacheUtil.RemoveBySearch(CacheKey_TagPrefix);
            }

            return(true);
        }
Пример #3
0
        /// <summary>
        /// 高级删除
        /// </summary>
        public override bool DeleteTagsByFilter(AdminTagFilter filter)
        {
            using (SqlQuery query = new SqlQuery())
            {
                string conditions = BuildConditionsByFilter(query, filter);

                query.CommandText = "DELETE FROM [bx_Tags] WHERE " + conditions;

                query.ExecuteNonQuery();
            }

            return(true);
        }
Пример #4
0
        public void TagSearchList(
            string filter
            , int pageNumber
            , TagListHeadFootTemplate head
            , TagListHeadFootTemplate foot
            , TagListItemTemplate item)
        {
            #region 标签搜索列表

            int?          count    = null;
            TagCollection tags     = null;
            int           pageSize = Consts.DefaultPageSize;

            TagListHeadFootParams headFootParams;
            AdminTagFilter        tagFilter = AdminTagFilter.GetFromFilter(filter);
            if (tagFilter != null)
            {
                tags           = TagBO.Instance.GetTagsBySearch(tagFilter, pageNumber, ref count);
                pageSize       = tagFilter.PageSize;
                headFootParams = new TagListHeadFootParams(count, tagFilter, pageSize);
            }
            else
            {
                tags = TagBO.Instance.GetAllTags(pageNumber, pageSize, ref count);

                headFootParams = new TagListHeadFootParams(count, new AdminTagFilter(), pageSize);
            }

            head(headFootParams);

            if (tags != null && tags.Count > 0)
            {
                int i = 0;
                foreach (Tag tag in tags)
                {
                    TagListItemParams itemParams = new TagListItemParams(tag);
                    item(itemParams, i++);
                }
            }

            foot(headFootParams);

            #endregion
        }
Пример #5
0
        /// <summary>
        /// 搜索标签
        /// </summary>
        public TagCollection GetTagsBySearch(AdminTagFilter filter, int pageNumber, ref int?count)
        {
            if (filter == null)
            {
                throw new ArgumentNullException("filter");
            }

            //int pageSize = filter.PageSize;
            //TagOrderKey orderBy = filter.OrderBy;

            if (pageNumber <= 0)
            {
                pageNumber = 1;
            }
            //if (pageSize <= 0) { pageSize = Consts.DefaultPageSize; }

            TagCollection tags = TagDao.Instance.GetTagsByFilter(filter, pageNumber, ref count);

            return(tags);
        }
Пример #6
0
        /// <summary>
        /// 搜索标签
        /// </summary>
        public override TagCollection GetTagsByFilter(AdminTagFilter filter, int pageNumber, ref int?count)
        {
            using (SqlQuery query = new SqlQuery())
            {
                string conditions = BuildConditionsByFilter(query, filter);

                query.Pager.TableName = "bx_Tags";

                //只有要排序的字段不唯一的时候才需要指定主键
                if (filter.OrderBy != TagOrderKey.ID)
                {
                    query.Pager.PrimaryKey = "ID";
                }

                query.Pager.SortField    = filter.OrderBy.ToString();
                query.Pager.PageNumber   = pageNumber;
                query.Pager.PageSize     = filter.PageSize;
                query.Pager.TotalRecords = count;
                query.Pager.IsDesc       = filter.IsDesc;
                query.Pager.SelectCount  = true;
                query.Pager.Condition    = conditions;


                using (XSqlDataReader reader = query.ExecuteReader())
                {
                    TagCollection tags = new TagCollection(reader);

                    if (count == null && reader.NextResult())
                    {
                        if (reader.Read())
                        {
                            count = reader.Get <int>(0);
                        }
                    }
                    return(tags);
                }
            }
        }
Пример #7
0
        private string BuildConditionsByFilter(SqlQuery query, AdminTagFilter filter)
        {
            StringBuffer sqlConditions = new StringBuffer();

            if (string.IsNullOrEmpty(filter.Name))
            {
                sqlConditions += " AND [Name] Like '%' + @Name + '%'";
                query.CreateParameter <string>("@Name", filter.Name, SqlDbType.NVarChar, 50);
            }

            if (filter.Type != null)
            {
                sqlConditions += " AND ([ID] IN (SELECT [TagID] FROM [bx_TagRelation] WHERE [Type] = @Type))";
                query.CreateParameter <TagType?>("@Type", filter.Type, SqlDbType.TinyInt);
            }

            if (filter.IsLock != null)
            {
                sqlConditions += " AND [IsLock] = @IsLock";
                query.CreateParameter <bool?>("@IsLock", filter.IsLock, SqlDbType.Bit);
            }

            if (filter.TotalElementsScopeBegin != null && filter.TotalElementsScopeEnd != null)
            {
                sqlConditions += " AND ([TotalElements] >= @TotalElementsBegin AND [TotalElements] <= @TotalElementsEnd)";
                query.CreateParameter <int?>("@TotalElementsBegin", filter.TotalElementsScopeBegin, SqlDbType.Int);
                query.CreateParameter <int?>("@TotalElementsEnd", filter.TotalElementsScopeEnd, SqlDbType.Int);
            }

            if (sqlConditions.Length > 0)
            {
                sqlConditions.Remove(0, 5);
            }

            return(sqlConditions.ToString());
        }
Пример #8
0
 /// <summary>
 /// 高级删除
 /// </summary>
 public abstract bool DeleteTagsByFilter(AdminTagFilter filter);
Пример #9
0
 /// <summary>
 /// 搜索标签
 /// </summary>
 public abstract TagCollection GetTagsByFilter(AdminTagFilter filter, int pageNumber, ref int?count);
Пример #10
0
 public TagListHeadFootParams(int?totalTags, AdminTagFilter filter, int pageSize)
 {
     m_TotalTags = totalTags;
     m_Filter    = filter;
     m_PageSize  = pageSize;
 }
Пример #11
0
        private string BuildConditionsByFilter(SqlQuery query, AdminTagFilter filter)
        {
            StringBuffer sqlConditions = new StringBuffer();

            if (string.IsNullOrEmpty(filter.Name))
            {
                sqlConditions += " AND [Name] Like '%' + @Name + '%'";
                query.CreateParameter<string>("@Name", filter.Name, SqlDbType.NVarChar, 50);
            }

            if (filter.Type != null)
            {
                sqlConditions += " AND ([ID] IN (SELECT [TagID] FROM [bx_TagRelation] WHERE [Type] = @Type))";
                query.CreateParameter<TagType?>("@Type", filter.Type, SqlDbType.TinyInt);
            }

            if (filter.IsLock != null)
            {
                sqlConditions += " AND [IsLock] = @IsLock";
                query.CreateParameter<bool?>("@IsLock", filter.IsLock, SqlDbType.Bit);
            }

            if (filter.TotalElementsScopeBegin != null && filter.TotalElementsScopeEnd != null)
            {
                sqlConditions += " AND ([TotalElements] >= @TotalElementsBegin AND [TotalElements] <= @TotalElementsEnd)";
                query.CreateParameter<int?>("@TotalElementsBegin", filter.TotalElementsScopeBegin, SqlDbType.Int);
                query.CreateParameter<int?>("@TotalElementsEnd", filter.TotalElementsScopeEnd, SqlDbType.Int);
            }

            if (sqlConditions.Length > 0)
                sqlConditions.Remove(0, 5);

            return sqlConditions.ToString();
        }
Пример #12
0
        /// <summary>
        /// 高级删除
        /// </summary>
        public override bool DeleteTagsByFilter(AdminTagFilter filter)
        {
            using (SqlQuery query = new SqlQuery())
            {
                string conditions = BuildConditionsByFilter(query, filter);

                query.CommandText = "DELETE FROM [bx_Tags] WHERE " + conditions;

                query.ExecuteNonQuery();
            }

            return true;
        }
Пример #13
0
        /// <summary>
        /// 搜索标签
        /// </summary>
        public override TagCollection GetTagsByFilter(AdminTagFilter filter, int pageNumber, ref int? count)
        {
            
            using (SqlQuery query = new SqlQuery())
            {

                string conditions = BuildConditionsByFilter(query, filter);

                query.Pager.TableName = "bx_Tags";
                
                //只有要排序的字段不唯一的时候才需要指定主键
                if (filter.OrderBy != TagOrderKey.ID)
                    query.Pager.PrimaryKey = "ID";

                query.Pager.SortField = filter.OrderBy.ToString();
                query.Pager.PageNumber = pageNumber;
                query.Pager.PageSize = filter.PageSize;
                query.Pager.TotalRecords = count;
                query.Pager.IsDesc = filter.IsDesc;
                query.Pager.SelectCount = true;
                query.Pager.Condition = conditions;


                using (XSqlDataReader reader = query.ExecuteReader())
                {
                    TagCollection tags = new TagCollection(reader);

                    if (count == null && reader.NextResult())
                    {
                        if (reader.Read())
                        {
                            count = reader.Get<int>(0);
                        }
                    }
                    return tags;
                }
            }
        }
Пример #14
0
 public TagListHeadFootParams(int? totalTags, AdminTagFilter filter, int pageSize)
 {
     m_TotalTags = totalTags;
     m_Filter = filter;
     m_PageSize = pageSize;
 }
Пример #15
0
        private void SearchTags()
        {
            AdminTagFilter filter = AdminTagFilter.GetFromForm();

            filter.Apply("filter", "page");
        }