Beispiel #1
0
        public override bool StepExecute(int operatorUserID, string param, ref long offset, ref int totalCount, ref int finishedCount, out string title, out bool isLastStep)
        {
            StringList paramData = StringList.Parse(param);

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

            int stepCount;

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

            if (ImpressionBO.Instance.DeleteImpressionRecordsForAdmin(operatorUser, filter, stepDeleteCount, out stepCount)) // .DeleteDoingsBySearch(filter, 200);
            {
                finishedCount += stepCount;

                isLastStep = stepCount < stepDeleteCount;

                title = "正在删除好友印象记录,总数 " + totalCount + ",已删 " + finishedCount;

                return(true);
            }
            else
            {
                isLastStep = true;
                title      = string.Empty;
            }

            return(true);
        }
Beispiel #2
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);
                }
            }
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            int?typeid = _Request.Get <int>("tid", Method.Get);

            if (typeid != null)
            {
                AdminImpressionRecordFilter filter = AdminImpressionRecordFilter.GetFromForm();

                filter.TypeID = typeid.Value;

                UrlScheme scheme = BbsRouter.GetCurrentUrlScheme();

                scheme.RemoveQuery("tid");
                scheme.AttachQuery("filter", filter.ToString());
                scheme.AttachQuery("page", "1");

                HttpContext.Current.Response.Redirect(scheme.ToString());
            }

            m_AdminForm = AdminImpressionRecordFilter.GetFromFilter("filter");

            if (_Request.IsClick("advancedsearch"))
            {
                SearchTypes();
            }
            else if (_Request.IsClick("deletechecked"))
            {
                DeleteChecked();
            }
            else if (_Request.IsClick("deletesearched"))
            {
                DeleteSearch();
            }

            using (ErrorScope es = new ErrorScope())
            {
                int pageNumber = _Request.Get <int>("page", 0);

                m_RecordListPageSize = m_AdminForm.PageSize;

                m_RecordList = ImpressionBO.Instance.GetImpressionRecordsForAdmin(My, m_AdminForm, pageNumber);

                if (m_RecordList != null)
                {
                    m_TotalRecordCount = m_RecordList.TotalRecords;
                }

                if (es.HasUnCatchedError)
                {
                    es.CatchError <ErrorInfo>(delegate(ErrorInfo error)
                    {
                        ShowError(error);
                    });
                }

                UserBO.Instance.WaitForFillSimpleUsers <ImpressionRecord>(m_RecordList, 0);
            }
        }
Beispiel #4
0
        public bool DeleteImpressionRecordsForAdmin(AuthUser operatorUser, AdminImpressionRecordFilter filter, int stepDeleteCount, out int stepCount)
        {
            stepCount = 0;

            if (ManagePermission.Can(operatorUser, BackendPermissions.Action.Manage_ImpressionRecord) == false)
            {
                return(false);
            }

            return(ImpressionDao.Instance.DeleteImpressionRecordsForAdmin(filter, stepDeleteCount, out stepCount));
        }
Beispiel #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);
        }
Beispiel #6
0
        public override bool DeleteImpressionRecordsForAdmin(AdminImpressionRecordFilter filter, int topCount, out int deletedCount)
        {
            deletedCount = 0;

            using (SqlQuery query = new SqlQuery())
            {
                string conditions = BuildCondition(query, filter);

                StringBuffer sql = new StringBuffer();

                sql += @"
DECLARE @DeleteData table (RecordID int);

INSERT INTO @DeleteData SELECT TOP (@TopCount) [RecordID] FROM [bx_ImpressionRecords] WHERE " + conditions + @";

DELETE [bx_ImpressionRecords] WHERE TypeID IN (SELECT [RecordID] FROM @DeleteData);

SELECT @@ROWCOUNT;";

                query.CreateTopParameter("@TopCount", topCount);

                query.CommandText = sql.ToString();

                using (XSqlDataReader reader = query.ExecuteReader())
                {
                    DeleteResult deleteResult = new DeleteResult();

                    if (reader.Read())
                    {
                        deletedCount = reader.Get <int>(0);
                    }

                    return(true);
                }
            }
        }
Beispiel #7
0
        private string BuildCondition(SqlQuery query, AdminImpressionRecordFilter filter)
        {
            StringBuffer condition = new StringBuffer();

            if (filter.TypeID != null)
            {
                condition += " AND [TypeID] = @TypeID";
                query.CreateParameter <int>("@TypeID", filter.TypeID.Value, SqlDbType.Int);
            }

            if (string.IsNullOrEmpty(filter.SearchKey) == false)
            {
                condition += " AND [TypeID] IN (SELECT [TypeID] FROM [bx_ImpressionTypes] WHERE [Text] LIKE '%' + @SearchKey + '%')";
                query.CreateParameter <string>("@SearchKey", filter.SearchKey, SqlDbType.NVarChar, 50);
            }


            if (filter.UserID != null)
            {
                condition += " AND [UserID] = @UserID";
                query.CreateParameter <int>("@UserID", filter.UserID.Value, SqlDbType.Int);
            }

            if (filter.TargetUserID != null)
            {
                condition += " AND [TargetUserID] = @TargetUserID";
                query.CreateParameter <int>("@TargetUserID", filter.TargetUserID.Value, SqlDbType.Int);
            }

            if (string.IsNullOrEmpty(filter.User) == false)
            {
                condition += " AND [UserID] = (SELECT [UserID] FROM [bx_Users] WHERE [Username] = @Username)";
                query.CreateParameter <string>("@Username", filter.User, SqlDbType.NVarChar, 50);
            }

            if (string.IsNullOrEmpty(filter.TargetUser) == false)
            {
                condition += " AND [TargetUserID] = (SELECT [UserID] FROM [bx_Users] WHERE [Username] = @TargetUserName)";
                query.CreateParameter <string>("@TargetUserName", filter.TargetUser, SqlDbType.NVarChar, 50);
            }

            if (filter.BeginDate != null)
            {
                condition += " AND  [CreateDate] >= @BeginDate";
                query.CreateParameter <DateTime>("@BeginDate", filter.EndDate.Value, SqlDbType.DateTime);
            }

            if (filter.EndDate != null)
            {
                condition += " AND [CreateDate] <= @EndDate";
                query.CreateParameter <DateTime>("@EndDate", filter.EndDate.Value, SqlDbType.DateTime);
            }


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

            return(condition.ToString());
        }
Beispiel #8
0
        public override bool DeleteImpressionRecordsForAdmin(AdminImpressionRecordFilter filter, int topCount, out int deletedCount)
        {
            deletedCount = 0;

            using (SqlQuery query = new SqlQuery())
            {
                string conditions = BuildCondition(query, filter);

                StringBuffer sql = new StringBuffer();

                sql += @"
DECLARE @DeleteData table (RecordID int);

INSERT INTO @DeleteData SELECT TOP (@TopCount) [RecordID] FROM [bx_ImpressionRecords] WHERE " + conditions + @";

DELETE [bx_ImpressionRecords] WHERE TypeID IN (SELECT [RecordID] FROM @DeleteData);

SELECT @@ROWCOUNT;";

                query.CreateTopParameter("@TopCount", topCount);

                query.CommandText = sql.ToString();

                using (XSqlDataReader reader = query.ExecuteReader())
                {
                    DeleteResult deleteResult = new DeleteResult();

                    if (reader.Read())
                        deletedCount = reader.Get<int>(0);

                    return true;
                }
            }
        }
Beispiel #9
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;
                }
            }
        }
Beispiel #10
0
        private string BuildCondition(SqlQuery query, AdminImpressionRecordFilter filter)
        {
            StringBuffer condition = new StringBuffer();

            if (filter.TypeID != null)
            {
                condition += " AND [TypeID] = @TypeID";
                query.CreateParameter<int>("@TypeID", filter.TypeID.Value, SqlDbType.Int);
            }

            if (string.IsNullOrEmpty(filter.SearchKey) == false)
            {
                condition += " AND [TypeID] IN (SELECT [TypeID] FROM [bx_ImpressionTypes] WHERE [Text] LIKE '%' + @SearchKey + '%')";
                query.CreateParameter<string>("@SearchKey", filter.SearchKey, SqlDbType.NVarChar, 50);
            }


            if (filter.UserID != null)
            {
                condition += " AND [UserID] = @UserID";
                query.CreateParameter<int>("@UserID", filter.UserID.Value, SqlDbType.Int);
            }

            if (filter.TargetUserID != null)
            {
                condition += " AND [TargetUserID] = @TargetUserID";
                query.CreateParameter<int>("@TargetUserID", filter.TargetUserID.Value, SqlDbType.Int);
            }

            if (string.IsNullOrEmpty(filter.User) == false)
            {
                condition += " AND [UserID] = (SELECT [UserID] FROM [bx_Users] WHERE [Username] = @Username)";
                query.CreateParameter<string>("@Username", filter.User, SqlDbType.NVarChar, 50);
            }

            if (string.IsNullOrEmpty(filter.TargetUser) == false)
            {
                condition += " AND [TargetUserID] = (SELECT [UserID] FROM [bx_Users] WHERE [Username] = @TargetUserName)";
                query.CreateParameter<string>("@TargetUserName", filter.TargetUser, SqlDbType.NVarChar, 50);
            }

            if (filter.BeginDate != null)
            {
                condition += " AND  [CreateDate] >= @BeginDate";
                query.CreateParameter<DateTime>("@BeginDate", filter.EndDate.Value, SqlDbType.DateTime);
            }

            if (filter.EndDate != null)
            {
                condition += " AND [CreateDate] <= @EndDate";
                query.CreateParameter<DateTime>("@EndDate", filter.EndDate.Value, SqlDbType.DateTime);
            }


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

            return condition.ToString();
        }
        private void SearchTypes()
        {
            AdminImpressionRecordFilter filter = AdminImpressionRecordFilter.GetFromForm();

            filter.Apply("filter", "page");
        }
Beispiel #12
0
        public ImpressionRecordCollection GetImpressionRecordsForAdmin(AuthUser operatorUser, AdminImpressionRecordFilter filter, int pageNumber)
        {
            if (ManagePermission.Can(operatorUser, BackendPermissions.Action.Manage_ImpressionRecord) == false)
            {
                return(null);
            }

            return(ImpressionDao.Instance.GetImpressionRecordsForAdmin(filter, pageNumber));
        }
Beispiel #13
0
 public abstract bool DeleteImpressionRecordsForAdmin(AdminImpressionRecordFilter filter, int stepDeleteCount, out int stepCount);
Beispiel #14
0
 public abstract ImpressionRecordCollection GetImpressionRecordsForAdmin(AdminImpressionRecordFilter filter, int pageNumber);