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); }
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); } }
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)); }
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); }
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); } } }
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()); }
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; } } }
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; } } }
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"); }
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)); }
public abstract bool DeleteImpressionRecordsForAdmin(AdminImpressionRecordFilter filter, int stepDeleteCount, out int stepCount);
public abstract ImpressionRecordCollection GetImpressionRecordsForAdmin(AdminImpressionRecordFilter filter, int pageNumber);