public void avatarfindfriend(string username, string token, string friendname)
        {
            var pattern = @"/(" + friendname + @")/gi";
            var filter  = Builders <BsonDocument> .Filter.Regex(InfoNameDefs.AvatarName
                                                                , pattern);

            var res = dbavatar.FindManyData(TableName, filter, ADBAccessor.projections(InfoNameDefs.AvatarName
                                                                                       , InfoNameDefs.AvatarHead
                                                                                       , InfoNameDefs.Username));

            if (res != null && res.Count > 0)
            {
                var lres = new List <List <string> >();
                foreach (var r in res)
                {
                    var l = new List <string>();
                    l.Add(InfoNameDefs.AvatarName);
                    l.Add(r[InfoNameDefs.AvatarName].AsString);
                    l.Add(InfoNameDefs.AvatarHead);
                    l.Add(r.Contains(InfoNameDefs.AvatarHead) ? r[InfoNameDefs.AvatarHead].AsInt32.ToString() : "0");
                    l.Add("accid");
                    l.Add(r[InfoNameDefs.Username].AsString);
                    lres.Add(l);
                }
                SendError("names", AWebServerUtils.ToJsonArray(lres.ToArray()));
            }
            else
            {
                SendError(ErrorDefs.FindNone);
            }
        }
        public void avatargetrank(string username, string token, string ranktype, string count)
        {
            int icount = typeParser.intParse(count);

            if (icount <= 0 || icount > 100)
            {
                SendError("Invalid count " + count);
                return;
            }
            var iranktype = typeParser.intParse(ranktype);

            if (iranktype < 0 || iranktype >= (int)ERankType.RankNum)
            {
                SendError("Invalid ranktype " + ranktype);
                return;
            }
            var a = GetAvatar(username, token);

            if (a != null)
            {
                switch ((ERankType)iranktype)
                {
                case ERankType.Money:
                    var res = dbavatar.FindManyData(TableName, null
                                                    , ADBAccessor.projections(InfoNameDefs.AvatarName, InfoNameDefs.AvatarMoney, InfoNameDefs.AvatarHead)
                                                    , icount, 0, ADBAccessor.sort_Descending(InfoNameDefs.AvatarMoney));
                    var lres = new List <List <string> >();
                    foreach (var r in res)
                    {
                        var l = new List <string>();
                        l.Add(InfoNameDefs.AvatarName);
                        l.Add(r[InfoNameDefs.AvatarName].AsString);
                        if (r.Contains(InfoNameDefs.AvatarMoney))
                        {
                            l.Add(InfoNameDefs.AvatarMoney);
                            l.Add(r[InfoNameDefs.AvatarMoney].ToString());
                        }
                        if (r.Contains(InfoNameDefs.AvatarHead))
                        {
                            l.Add(InfoNameDefs.AvatarHead);
                            l.Add(r[InfoNameDefs.AvatarHead].AsInt32.ToString());
                        }
                        lres.Add(l);
                    }
                    SendError("rs", AWebServerUtils.ToJsonArray(lres.ToArray()));
                    return;
                }
                SendError("Invalid ranktype " + ranktype);
            }
        }
    internal string ToAll()
    {
        var l = new List <List <string> >();

        foreach (var item in dItems)
        {
            var ais = new List <string>();
            ais.Add("id");
            ais.Add(item.Key.ToString());
            ais.Add("count");
            ais.Add(item.Value.ToString());
            l.Add(ais);
        }
        return(AWebServerUtils.ToJsonArray(l.ToArray()));
    }
Esempio n. 4
0
        public void wikilist(string page, string count)
        {
            var ipage  = typeParser.intParse(page);
            var icount = typeParser.intParse(count);
            List <List <string> > lr = new List <List <string> >();

            for (var i = (ipage + 1) * icount; i > ipage * icount; i--)
            {
                AWikiCell cell = null;
                if (dWikis.ContainsKey(i))
                {
                    cell = dWikis[i];
                }
                else
                {
                    var r = adb.FindOneData(TableName
                                            , ADBAccessor.filter_eq("i", i)
                                            , ADBAccessor.projections("i", "s", "t"));
                    if (r == null)
                    {
                        continue;
                    }
                    cell         = new AWikiCell();
                    cell.id      = r["i"].AsInt32;
                    cell.subject = r["s"].AsString;
                    cell.time    = r["t"].AsString;
                }

                var l = new List <string>();
                l.Add("i");
                l.Add(cell.id.ToString());
                l.Add("s");
                l.Add(cell.subject);
                l.Add("t");
                l.Add(cell.time);
                lr.Add(l);
            }
            SendError("r", AWebServerUtils.ToJsonArray(lr.ToArray()));
        }
    public static string ToJson(string avatarname, List <AFriend> friends)
    {
        var lfriends = new List <List <string> >();

        foreach (var f in friends)
        {
            var fn    = f.OnGetFriendName(avatarname);
            var finfo = AFriend.OnGetFriendInfo(fn);
            if (finfo == null)
            {
                AOutput.LogError("Cannot find friend info of " + fn);
                continue;
            }
            var fs = new List <string>();
            fs.Add(InfoNameDefs.AvatarName);
            fs.Add(fn);
            fs.Add(InfoNameDefs.AvatarHead);
            fs.Add(finfo.head.ToString());
            fs.Add("accid");
            fs.Add(finfo.accid);
            lfriends.Add(fs);
        }
        return(AWebServerUtils.ToJsonArray(lfriends.ToArray()));
    }