/// <summary>
        /// 获取充值奖励的计划
        /// </summary>
        /// <param name="db">数据库连接对象</param>
        /// <returns>返回充值奖励的计划</returns>
        public PageResult<RewardForRechargePlanExport> GetRewardForRechargePlans(IModelToDbContextOfActivity db)
        {
            if (this.PageIndex < 1) { this.PageIndex = 1; }
            SettingOfBase settingOfBase = new SettingOfBase(db);
            int startRow = settingOfBase.PageSizeForAdmin * (this.PageIndex - 1);

            Expression<Func<RewardForRechargePlan, bool>> predicate1 = x => x.EndTime > DateTime.Now;
            Expression<Func<RewardForRechargePlan, bool>> predicate2 = x => x.Id > 0;

            if (this.KeywordForTitle != null)
            {
                this.KeywordForTitle = VerifyHelper.EliminateSpaces(this.KeywordForTitle);
                string[] keywords = this.KeywordForTitle.Split(new char[] { ' ' });
                predicate2 = x => keywords.All(kw => x.Title.Contains(kw));
            }

            int countOfAllMessages = db.RewardForRechargePlans
                .Where(predicate1)
                .Where(predicate2)
                .Count();
            var tList = db.RewardForRechargePlans
                .Where(predicate1)
                .Where(predicate2)
                .OrderByDescending(x => x.CreatedTime)
                .Skip(startRow)
                .Take(settingOfBase.PageSizeForAdmin)
                .ToList()
                .ConvertAll(x => new RewardForRechargePlanExport(x));

            return new PageResult<RewardForRechargePlanExport>(this.PageIndex, countOfAllMessages, settingOfBase.PageSizeForAdmin, tList);
        }
        /// <summary>
        /// 获取注册奖励的参与记录
        /// </summary>
        /// <param name="db">数据库连接对象</param>
        /// <returns>返回注册奖励的参与记录</returns>
        public PageResult<RewardForRegisterRecordExport> GetRewardForRegisterRecords(IModelToDbContextOfActivity db)
        {
            if (this.PageIndex < 1) { this.PageIndex = 1; }
            SettingOfBase settingOfBase = new SettingOfBase(db);
            int startRow = settingOfBase.PageSizeForAdmin * (this.PageIndex - 1);

            Expression<Func<RewardForRegisterRecord, bool>> predicate1 = x => x.Id > 0;
            Expression<Func<RewardForRegisterRecord, bool>> predicate2 = x => x.Id > 0;
            Expression<Func<RewardForRegisterRecord, bool>> predicate3 = x => x.Id > 0;
            Expression<Func<RewardForRegisterRecord, bool>> predicate4 = x => x.Id > 0;

            if (this.KeywordForUsername != null)
            {
                this.KeywordForUsername = VerifyHelper.EliminateSpaces(this.KeywordForUsername);
                string[] keywords = this.KeywordForUsername.Split(new char[] { ' ' });
                predicate1 = x => keywords.All(kw => x.Owner.Username.Contains(kw));
            }
            if (this.UserId != null)
            {
                int userId = (int)this.UserId;
                predicate2 = x => x.Owner.Id == userId;
            }
            if (this.BeginTime != null)
            {
                DateTime beginTime = (DateTime)this.BeginTime;
                predicate3 = x => x.CreatedTime >= beginTime;
            }
            if (this.EndTime != null)
            {
                DateTime endtime = (DateTime)this.EndTime;
                predicate4 = x => x.CreatedTime <= endtime;
            }

            int countOfAllMessages = db.RewardForRegisterRecords
                .Where(predicate1)
                .Where(predicate2)
                .Where(predicate3)
                .Where(predicate4)
                .Count();
            var tList = db.RewardForRegisterRecords
                .Where(predicate1)
                .Where(predicate2)
                .Where(predicate3)
                .Where(predicate4)
                .OrderByDescending(x => x.CreatedTime)
                .Skip(startRow)
                .Take(settingOfBase.PageSizeForAdmin)
                .ToList()
                .ConvertAll(x => new RewardForRegisterRecordExport(x));

            return new PageResult<RewardForRegisterRecordExport>(this.PageIndex, countOfAllMessages, settingOfBase.PageSizeForAdmin, tList);
        }
        /// <summary>
        /// 获取积分兑换的参与记录
        /// </summary>
        /// <param name="db">数据库连接对象</param>
        /// <returns>返回积分兑换的参与记录</returns>
        public PageResult<RedeemRecordExport> GetRedeemRecords(IModelToDbContextOfActivity db)
        {
            if (this.PageIndex < 1) { this.PageIndex = 1; }
            SettingOfBase settingOfBase = new SettingOfBase(db);
            int startRow = settingOfBase.PageSizeForClient * (this.PageIndex - 1);

            Expression<Func<RedeemRecord, bool>> predicate1 = x => x.Owner.Id == this.Self.Id;
            Expression<Func<RedeemRecord, bool>> predicate2 = x => x.Id > 0;
            Expression<Func<RedeemRecord, bool>> predicate3 = x => x.Id > 0;

            if (this.BeginTime != null)
            {
                DateTime beginTime = (DateTime)this.BeginTime;
                predicate2 = x => x.CreatedTime >= beginTime;
            }
            if (this.EndTime != null)
            {
                DateTime endtime = (DateTime)this.EndTime;
                predicate3 = x => x.CreatedTime <= endtime;
            }

            int countOfAllMessages = db.RedeemRecords
                .Where(predicate1)
                .Where(predicate2)
                .Where(predicate3)
                .Count();
            var tList = db.RedeemRecords
                .Where(predicate1)
                .Where(predicate2)
                .Where(predicate3)
                .OrderByDescending(x => x.CreatedTime)
                .Skip(startRow)
                .Take(settingOfBase.PageSizeForClient)
                .ToList()
                .ConvertAll(x => new RedeemRecordExport(x));

            return new PageResult<RedeemRecordExport>(this.PageIndex, countOfAllMessages, settingOfBase.PageSizeForClient, tList);
        }
        /// <summary>
        /// 获取积分兑换奖励的计划
        /// </summary>
        /// <param name="db">数据库连接对象</param>
        /// <returns>返回积分兑换奖励的计划</returns>
        public PageResult<RedeemPlanExport> GetRedeemPlans(IModelToDbContextOfActivity db)
        {
            if (this.PageIndex < 1) { this.PageIndex = 1; }
            SettingOfBase settingOfBase = new SettingOfBase(db);
            int startRow = settingOfBase.PageSizeForClient * (this.PageIndex - 1);

            Expression<Func<RedeemPlan, bool>> predicate1 = x => x.EndTime > DateTime.Now;
            Expression<Func<RedeemPlan, bool>> predicate2 = x => x.Hide == false;

            int countOfAllMessages = db.RedeemPlans
                .Where(predicate1)
                .Where(predicate2)
                .Count();
            var tList = db.RedeemPlans
                .Where(predicate1)
                .Where(predicate2)
                .OrderByDescending(x => x.CreatedTime)
                .Skip(startRow)
                .Take(settingOfBase.PageSizeForClient)
                .ToList()
                .ConvertAll(x => new RedeemPlanExport(x));

            return new PageResult<RedeemPlanExport>(this.PageIndex, countOfAllMessages, settingOfBase.PageSizeForClient, tList);
        }