public ChatSessionCollection Server_AdminGetSessions(int operatorUserID, MaxLabs.Passport.Proxy.DataForSearchChatSession filter, int pageNumber) { ChatSessionFilter f = new ChatSessionFilter(); f.BeginDate = filter.BeginDate; f.Contains = filter.Contains; f.EndDate = filter.EndDate; f.IsDesc = filter.IsDesc; f.PageSize = filter.PageSize; f.ShowAll = filter.ShowAll; f.UserID = filter.UserID; f.Username = filter.Username; return(AdminGetSessions(operatorUserID, f, pageNumber)); }
public ChatSessionCollection AdminGetSessions(int operatorUserID, ChatSessionFilter filter, int pageNumber) { #if !Passport PassportClientConfig settings = Globals.PassportClient; if (settings.EnablePassport) { ChatSessionProxy[] sessons = settings.PassportService.Chat_AdminGetSessions(operatorUserID, GetChatSessionFilterProxy(filter), pageNumber); ChatSessionCollection result = new ChatSessionCollection(); foreach (ChatSessionProxy s in sessons) { result.Add(GetChatSession(s)); } return(result); } else #endif { Guid[] ExcludeRoleIds = PermissionSet.GetNoPermissionTargetRoleIds(operatorUserID, PermissionTargetType.Content); return(ChatDao.Instance.AdminGetSessions(filter, pageNumber, ExcludeRoleIds)); } }
public override ChatSessionCollection AdminGetSessions(ChatSessionFilter filter, int pageNumber, IEnumerable <Guid> excludeRoleIds) { ChatSessionCollection sessions; using (SqlQuery query = new SqlQuery()) { string excludeRoleCondition = DaoUtil.GetExcludeRoleSQL("UserID", excludeRoleIds, query); StringBuffer buffer = new StringBuffer(); if (filter.UserID != null) { buffer += " AND UserID = @UserID"; query.CreateParameter <int>("@UserID", filter.UserID.Value, SqlDbType.Int); } if (!string.IsNullOrEmpty(filter.Username)) { buffer += " AND UserID IN( SELECT UserID FROM bx_Users WHERE Username LIKE '%'+@Username+'%' ) OR TargetUserID IN( SELECT UserID FROM bx_Users WHERE Username LIKE '%'+@Username+'%' )"; query.CreateParameter <string>("@Username", filter.Username, SqlDbType.NVarChar, 50); } //if (!string.IsNullOrEmpty(filter.TargetUsername)) //{ // buffer += " AND TargetUserID IN( SELECT UserID FROM bx_Users WHERE Username LIKE '%'+@TargetUser+'%' )"; // query.CreateParameter<string>("@TargetUser", filter.TargetUsername, SqlDbType.NVarChar, 50); //} //if (!string.IsNullOrEmpty(filter.Contains)) //{ // buffer +=" AND ChatSessionID IN( SELECT ) " //} if (filter.BeginDate != null) { buffer += " AND CreateDate >= @BeginDate"; query.CreateParameter <DateTime>("@BeginDate", filter.BeginDate.Value, SqlDbType.DateTime); } if (filter.EndDate != null) { buffer += " AND UpdateDate <= @EndDate"; query.CreateParameter <DateTime>("@EndDate", filter.EndDate.Value, SqlDbType.DateTime); } if (!string.IsNullOrEmpty(excludeRoleCondition)) { buffer += " AND " + excludeRoleCondition; excludeRoleCondition = DaoUtil.GetExcludeRoleSQL("TargetUserID", excludeRoleIds, query); buffer += " AND " + excludeRoleCondition; } if (buffer.Length > 0) { buffer.Remove(0, 5); } //query.CommandText = "SELECT * FROM bx_ChatSessions"; query.Pager.TableName = "bx_ChatSessions"; query.Pager.PrimaryKey = "ChatSessionID"; query.Pager.PageNumber = pageNumber; query.Pager.PageSize = filter.PageSize; query.Pager.SortField = "ChatSessionID"; query.Pager.IsDesc = true; query.Pager.SelectCount = true; query.Pager.Condition = buffer.ToString(); using (XSqlDataReader reader = query.ExecuteReader()) { sessions = new ChatSessionCollection(reader); while (reader.NextResult()) { if (reader.Read()) { sessions.TotalRecords = reader.GetInt32(0); } } } } return(sessions); }
public override ChatSessionCollection AdminGetSessions(ChatSessionFilter filter, int pageNumber, IEnumerable<Guid> excludeRoleIds) { ChatSessionCollection sessions; using (SqlQuery query = new SqlQuery()) { string excludeRoleCondition = DaoUtil.GetExcludeRoleSQL("UserID", excludeRoleIds, query); StringBuffer buffer = new StringBuffer(); if (filter.UserID != null) { buffer += " AND UserID = @UserID"; query.CreateParameter<int>("@UserID", filter.UserID.Value, SqlDbType.Int); } if (!string.IsNullOrEmpty(filter.Username)) { buffer += " AND UserID IN( SELECT UserID FROM bx_Users WHERE Username LIKE '%'+@Username+'%' ) OR TargetUserID IN( SELECT UserID FROM bx_Users WHERE Username LIKE '%'+@Username+'%' )"; query.CreateParameter<string>("@Username", filter.Username, SqlDbType.NVarChar, 50); } //if (!string.IsNullOrEmpty(filter.TargetUsername)) //{ // buffer += " AND TargetUserID IN( SELECT UserID FROM bx_Users WHERE Username LIKE '%'+@TargetUser+'%' )"; // query.CreateParameter<string>("@TargetUser", filter.TargetUsername, SqlDbType.NVarChar, 50); //} //if (!string.IsNullOrEmpty(filter.Contains)) //{ // buffer +=" AND ChatSessionID IN( SELECT ) " //} if (filter.BeginDate != null) { buffer += " AND CreateDate >= @BeginDate"; query.CreateParameter<DateTime>("@BeginDate", filter.BeginDate.Value, SqlDbType.DateTime); } if (filter.EndDate != null) { buffer += " AND UpdateDate <= @EndDate"; query.CreateParameter<DateTime>("@EndDate", filter.EndDate.Value, SqlDbType.DateTime); } if (!string.IsNullOrEmpty(excludeRoleCondition)) { buffer += " AND " + excludeRoleCondition; excludeRoleCondition = DaoUtil.GetExcludeRoleSQL("TargetUserID", excludeRoleIds, query); buffer += " AND " + excludeRoleCondition; } if (buffer.Length > 0) buffer.Remove(0, 5); //query.CommandText = "SELECT * FROM bx_ChatSessions"; query.Pager.TableName = "bx_ChatSessions"; query.Pager.PrimaryKey = "ChatSessionID"; query.Pager.PageNumber = pageNumber; query.Pager.PageSize = filter.PageSize; query.Pager.SortField = "ChatSessionID"; query.Pager.IsDesc = true; query.Pager.SelectCount = true; query.Pager.Condition = buffer.ToString(); using (XSqlDataReader reader = query.ExecuteReader()) { sessions = new ChatSessionCollection(reader); while (reader.NextResult()) if (reader.Read()) sessions.TotalRecords = reader.GetInt32(0); } } return sessions; }
private void Search() { ChatSessionFilter filter = ChatSessionFilter.GetFromForm(); filter.Apply("filter", "page"); }
private static PassportServerInterface.DataForSearchChatSession GetChatSessionFilterProxy(ChatSessionFilter filter) { if (filter == null) { return(null); } PassportServerInterface.DataForSearchChatSession proxy = new PassportServerInterface.DataForSearchChatSession(); proxy.BeginDate = filter.BeginDate; proxy.Contains = filter.Contains; proxy.EndDate = filter.EndDate; proxy.IsDesc = filter.IsDesc; proxy.PageSize = filter.PageSize; proxy.ShowAll = filter.ShowAll; proxy.UserID = filter.UserID; proxy.Username = filter.Username; return(proxy); }
public abstract ChatSessionCollection AdminGetSessions(ChatSessionFilter filter, int pageNumber, IEnumerable <Guid> excludeRoleIds);