Ejemplo n.º 1
0
        public override ImpressionRecordCollection GetImpressionRecordsForAdmin(AdminImpressionRecordFilter filter, int pageNumber)
        {
            using (SqlQuery query = new SqlQuery())
            {
                query.Pager.TableName    = "[bx_ImpressionRecordsWithTypeInfo]";
                query.Pager.ResultFields = "*";
                query.Pager.SortField    = "RecordID";
                query.Pager.IsDesc       = filter.IsDesc;
                query.Pager.PageNumber   = pageNumber;
                query.Pager.PageSize     = filter.PageSize;
                query.Pager.SelectCount  = true;

                query.Pager.Condition = BuildCondition(query, filter);

                using (XSqlDataReader reader = query.ExecuteReader())
                {
                    ImpressionRecordCollection types = new ImpressionRecordCollection(reader);

                    if (reader.NextResult())
                    {
                        if (reader.Read())
                        {
                            types.TotalRecords = reader.Get <int>(0);
                        }
                    }

                    return(types);
                }
            }
        }
Ejemplo n.º 2
0
        public override ImpressionRecordCollection GetTargetUserImpressionRecords(int targetUserID, int pageNumber, int pageSize, ref int?totalCount)
        {
            using (SqlQuery db = new SqlQuery())
            {
                db.Pager.TableName    = "bx_ImpressionRecordsWithTypeInfo";
                db.Pager.Condition    = "TargetUserID = @TargetUserID";
                db.Pager.SortField    = "RecordID";
                db.Pager.PageNumber   = pageNumber;
                db.Pager.PageSize     = pageSize;
                db.Pager.TotalRecords = totalCount;
                db.Pager.SelectCount  = true;

                db.CreateParameter <int>("@TargetUserID", targetUserID, System.Data.SqlDbType.Int);

                using (XSqlDataReader reader = db.ExecuteReader())
                {
                    ImpressionRecordCollection result = new ImpressionRecordCollection(reader);

                    if (reader.NextResult() && reader.Read())
                    {
                        totalCount          = reader.Get <int>(0);
                        result.TotalRecords = totalCount.Value;
                    }

                    return(result);
                }
            }
        }
Ejemplo n.º 3
0
        private void ProcessKeyword(ImpressionRecord record, ProcessKeywordMode mode)
        {
            //更新关键字模式,如果这个文章并不需要处理,直接退出
            if (mode == ProcessKeywordMode.TryUpdateKeyword)
            {
                if (AllSettings.Current.ContentKeywordSettings.ReplaceKeywords.NeedUpdate(record) == false)
                {
                    return;
                }
            }

            ImpressionRecordCollection records = new ImpressionRecordCollection();

            records.Add(record);

            ProcessKeyword(records, mode);
        }
Ejemplo n.º 4
0
        public ImpressionRecordCollection GetTargetUserImpressionRecords(int targetUserID, int pageNumber, int pageSize)
        {
            ImpressionRecordCollection result = null;

            string cacheKey = GetCacheKeyForTargetUserImpressionRecordsTotalCount(targetUserID);

            int?totalCount = null;

            bool totalCountCached = CacheUtil.TryGetValue <int?>(cacheKey, out totalCount);

            result = ImpressionDao.Instance.GetTargetUserImpressionRecords(targetUserID, pageNumber, pageSize, ref totalCount);

            if (totalCountCached == false)
            {
                CacheUtil.Set <int?>(cacheKey, totalCount);
            }

            ProcessKeyword(result, ProcessKeywordMode.TryUpdateKeyword);

            return(result);
        }
Ejemplo n.º 5
0
        public override bool BeforeExecute(int operatorUserID, string param, ref long offset, ref int totalCount, out string title)
        {
            StringList paramData = StringList.Parse(param);

            AdminImpressionRecordFilter filter = AdminImpressionRecordFilter.Parse(paramData[0]);

            AuthUser operatorUser = UserBO.Instance.GetAuthUser(operatorUserID);

            ImpressionRecordCollection types = ImpressionBO.Instance.GetImpressionRecordsForAdmin(operatorUser, filter, 1);

            if (types == null || types.Count == 0)
            {
                title = "没有数据可以删除";
                return(true);
            }

            totalCount = types.TotalRecords;

            title = "将删除 " + totalCount + " 条好友印象记录";

            return(true);
        }
Ejemplo n.º 6
0
        private void ProcessKeyword(ImpressionRecordCollection records, ProcessKeywordMode mode)
        {
            if (records.Count == 0)
            {
                return;
            }

            KeywordReplaceRegulation keyword = AllSettings.Current.ContentKeywordSettings.ReplaceKeywords;

            bool needProcess = false;

            //更新关键字模式,只在必要的情况下才取恢复信息并处理
            if (mode == ProcessKeywordMode.TryUpdateKeyword)
            {
                needProcess = keyword.NeedUpdate <ImpressionRecord>(records);
            }
            //填充原始内容模式,始终都要取恢复信息,但不处理
            else
            {
                needProcess = true;
            }

            if (needProcess)
            {
                RevertableCollection <ImpressionRecord> recordsWithReverter = ImpressionDao.Instance.GetImpressionRecordsWithReverters(records.GetKeys());

                if (recordsWithReverter != null)
                {
                    if (keyword.Update(recordsWithReverter))
                    {
                        ImpressionDao.Instance.UpdateImpressionRecordKeywords(recordsWithReverter);
                    }

                    //将新数据填充到旧的列表
                    recordsWithReverter.FillTo(records);
                }
            }
        }
Ejemplo n.º 7
0
        public override ImpressionRecordCollection GetTargetUserImpressionRecords(int targetUserID, int pageNumber, int pageSize, ref int? totalCount)
        {
            using (SqlQuery db = new SqlQuery())
            {
                db.Pager.TableName = "bx_ImpressionRecordsWithTypeInfo";
                db.Pager.Condition = "TargetUserID = @TargetUserID";
                db.Pager.SortField = "RecordID";
                db.Pager.PageNumber = pageNumber;
                db.Pager.PageSize = pageSize;
                db.Pager.TotalRecords = totalCount;
                db.Pager.SelectCount = true;

                db.CreateParameter<int>("@TargetUserID", targetUserID, System.Data.SqlDbType.Int);

                using (XSqlDataReader reader = db.ExecuteReader())
                {
                    ImpressionRecordCollection result = new ImpressionRecordCollection(reader);

                    if (reader.NextResult() && reader.Read())
                    {
                        totalCount = reader.Get<int>(0);
                        result.TotalRecords = totalCount.Value;
                    }

                    return result;
                }
            }
        }
Ejemplo n.º 8
0
        public override ImpressionRecordCollection GetImpressionRecordsForAdmin(AdminImpressionRecordFilter filter, int pageNumber)
        {
            using (SqlQuery query = new SqlQuery())
            {
                query.Pager.TableName = "[bx_ImpressionRecordsWithTypeInfo]";
                query.Pager.ResultFields = "*";
                query.Pager.SortField = "RecordID";
                query.Pager.IsDesc = filter.IsDesc;
                query.Pager.PageNumber = pageNumber;
                query.Pager.PageSize = filter.PageSize;
                query.Pager.SelectCount = true;

                query.Pager.Condition = BuildCondition(query, filter);

                using (XSqlDataReader reader = query.ExecuteReader())
                {
                    ImpressionRecordCollection types = new ImpressionRecordCollection(reader);

                    if (reader.NextResult())
                    {
                        if (reader.Read())
                        {
                            types.TotalRecords = reader.Get<int>(0);
                        }
                    }

                    return types;
                }
            }
        }