Exemplo n.º 1
0
    /// <summary>
    /// ユーザを検索する
    /// </summary>
    /// <param name="userName">検索する名前</param>
    /// <param name="callback">コールバック関数</param>
    public void GetSearchUserList(string userName, ListCallback callback)
    {
        if (!GetIsLogIn)
        {
            callback(null, new NCMBException(NCMBUTErrorMessage.NOT_LOGIN_ERROR));
            return;
        }

        if (userName == "")
        {
            callback(null, new NCMBException(NCMBUTErrorMessage.EMPTY_USER_NAME));
            return;
        }

        //find exist friends
        NCMBQuery <NCMBObject> friendsQuery = GetQuery(NCMBUTFriendsDefaultSettings.FRIEND_CLASS);

        friendsQuery.WhereEqualTo(NCMBUTFriendsDefaultSettings.FriendsDefaultFields.from.ToString(), NCMBUser.CurrentUser);
        friendsQuery.Include(NCMBUTFriendsDefaultSettings.FriendsDefaultFields.to.ToString());
        friendsQuery.FindAsync((List <NCMBObject> objList, NCMBException error) => {
            if (error != null)
            {
                callback(null, error);
                return;
            }

            List <NCMBObject> players = new List <NCMBObject>();
            players.Add(NCMBUser.CurrentUser as NCMBObject);
            foreach (NCMBObject friend in objList)
            {
                players.Add(friend["to"] as NCMBObject);
            }

            NCMBQuery <NCMBObject> query = GetQuery(NCMBUTPlayersDefaultSettings.PLAYERS_CLASS);
            query.WhereEqualTo("userName", userName);
            query.WhereNotContainedIn(NCMBUTPlayersDefaultSettings.PlayersDefaultFields.player.ToString(), players);
            query.Include(NCMBUTPlayersDefaultSettings.PlayersDefaultFields.player.ToString());
            query.FindAsync((List <NCMBObject> playerList, NCMBException findError) => {
                callback(playerList, findError);
                return;
            });
        });
    }