示例#1
0
        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));
        }
示例#2
0
        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));
            }
        }
示例#3
0
        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);
        }
示例#4
0
        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");
    }
示例#6
0
        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);
        }
示例#7
0
 public abstract ChatSessionCollection AdminGetSessions(ChatSessionFilter filter, int pageNumber, IEnumerable <Guid> excludeRoleIds);