예제 #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);

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

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

            int stepCount;

            if (ImpressionBO.Instance.DeleteImpressionTypesForAdmin(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);
        }
예제 #2
0
        public bool DeleteImpressionTypesForAdmin(AuthUser operatorUser, AdminImpressionTypeFilter filter, int stepDeleteCount, out int stepCount)
        {
            stepCount = 0;

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

            return(ImpressionDao.Instance.DeleteImpressionTypesForAdmin(filter, stepDeleteCount, out stepCount));
        }
예제 #3
0
        private string BuildCondition(SqlQuery query, AdminImpressionTypeFilter filter)
        {
            StringBuffer condition = new StringBuffer();

            if (string.IsNullOrEmpty(filter.SearchKey) == false)
            {
                condition += "[Text] LIKE '%' + @SearchKey + '%'";
                query.CreateParameter <string>("@SearchKey", filter.SearchKey, SqlDbType.NVarChar, 100);
            }

            return(condition.ToString());
        }
예제 #4
0
        public override ImpressionTypeCollection GetImpressionTypesForAdmin(AdminImpressionTypeFilter filter, int pageNumber)
        {
            using (SqlQuery query = new SqlQuery())
            {
                query.Pager.TableName = "[bx_ImpressionTypes]";

                if (filter.Order == AdminImpressionTypeFilter.OrderBy.TypeID)
                {
                    query.Pager.SortField = "TypeID";
                }
                else
                {
                    query.Pager.SortField = "RecordCount";

                    query.Pager.PrimaryKey = "TypeID";
                }
                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())
                {
                    ImpressionTypeCollection types = new ImpressionTypeCollection(reader);

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

                    return(types);
                }
            }
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            m_AdminForm = AdminImpressionTypeFilter.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_TypeListPageSize = m_AdminForm.PageSize;

                m_TypeList = ImpressionBO.Instance.GetImpressionTypesForAdmin(My, m_AdminForm, pageNumber);

                if (m_TypeList != null)
                {
                    m_TotalTypeCount = m_TypeList.TotalRecords;
                }

                if (es.HasUnCatchedError)
                {
                    es.CatchError <ErrorInfo>(delegate(ErrorInfo error)
                    {
                        ShowError(error);
                    });
                }
            }
        }
예제 #6
0
        public override bool BeforeExecute(int operatorUserID, string param, ref long offset, ref int totalCount, out string title)
        {
            StringList paramData = StringList.Parse(param);

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

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

            ImpressionTypeCollection types = ImpressionBO.Instance.GetImpressionTypesForAdmin(operatorUser, filter, 1);

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

            totalCount = types.TotalRecords;

            title = "将删除 " + totalCount + " 条好友印象描述";

            return(true);
        }
예제 #7
0
        public override bool DeleteImpressionTypesForAdmin(AdminImpressionTypeFilter 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 (TypeID int);

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

DELETE [bx_ImpressionTypes] WHERE TypeID IN (SELECT [TypeID] 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);
                }
            }
        }
        private void SearchTypes()
        {
            AdminImpressionTypeFilter filter = AdminImpressionTypeFilter.GetFromForm();

            filter.Apply("filter", "page");
        }
예제 #9
0
        public override bool DeleteImpressionTypesForAdmin(AdminImpressionTypeFilter 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 (TypeID int);

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

DELETE [bx_ImpressionTypes] WHERE TypeID IN (SELECT [TypeID] 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;
                }
            }
        }
예제 #10
0
        public override ImpressionTypeCollection GetImpressionTypesForAdmin(AdminImpressionTypeFilter filter, int pageNumber)
        {
            using (SqlQuery query = new SqlQuery())
            {
                query.Pager.TableName = "[bx_ImpressionTypes]";

                if (filter.Order == AdminImpressionTypeFilter.OrderBy.TypeID)
                    query.Pager.SortField = "TypeID";
                else
                {
                    query.Pager.SortField = "RecordCount";

                    query.Pager.PrimaryKey = "TypeID";
                }
                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())
                {
                    ImpressionTypeCollection types = new ImpressionTypeCollection(reader);

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

                    return types;
                }
            }
        }
예제 #11
0
        private string BuildCondition(SqlQuery query, AdminImpressionTypeFilter filter)
        {
            StringBuffer condition = new StringBuffer();

            if (string.IsNullOrEmpty(filter.SearchKey) == false)
            {
                condition += "[Text] LIKE '%' + @SearchKey + '%'";
                query.CreateParameter<string>("@SearchKey", filter.SearchKey, SqlDbType.NVarChar, 100);
            }

            return condition.ToString();
        }
예제 #12
0
        public ImpressionTypeCollection GetImpressionTypesForAdmin(AuthUser operatorUser, AdminImpressionTypeFilter filter, int pageNumber)
        {
            if (ManagePermission.Can(operatorUser, BackendPermissions.Action.Manage_ImpressionType) == false)
            {
                return(null);
            }

            return(ImpressionDao.Instance.GetImpressionTypesForAdmin(filter, pageNumber));
        }
예제 #13
0
 public abstract bool DeleteImpressionTypesForAdmin(AdminImpressionTypeFilter filter, int stepDeleteCount, out int stepCount);
예제 #14
0
 public abstract ImpressionTypeCollection GetImpressionTypesForAdmin(AdminImpressionTypeFilter filter, int pageNumber);