db.Database.GetArenaLeaderboards C# (CSharp) Method

GetArenaLeaderboards() public method

public GetArenaLeaderboards ( ) : string[]
return string[]
        public string[] GetArenaLeaderboards()
        {
            var lbrankings = new List<string>();

            MySqlCommand cmd = CreateQuery();

            cmd.CommandText = "SELECT * FROM arenalb ORDER BY wave DESC LIMIT 10";

            using (MySqlDataReader rdr = cmd.ExecuteReader())
            {
                if (!rdr.HasRows) lbrankings.Add("None");
                else
                {
                    while (rdr.Read())
                    {
                        lbrankings.Add("Wave " + rdr.GetInt32("wave") + " - " + rdr.GetString("players"));
                        lbrankings.Add("");
                    }
                }
            }

            return lbrankings.ToArray();
        }

Usage Example

        protected override void HandleRequest()
        {
            string result = "";
            using (Database dbx = new Database())
            {
                Account acc = dbx.Verify(Query["guid"], Query["password"], Program.GameData);
                if (String.IsNullOrEmpty(Query["guid"]) ||
                    String.IsNullOrEmpty(Query["password"]) ||
                    String.IsNullOrEmpty(Query["type"]) ||
                    acc == null)
                {
                    Context.Response.StatusCode = 400;
                    result = "<Error>Invalid GUID/password combination</Error>";
                }
                else
                {
                    string[][] ranks = dbx.GetArenaLeaderboards(Query["type"], acc);
                    result += "<ArenaRecords>";
                    foreach (string[] i in ranks)
                    {
                        MySqlCommand cmd = dbx.CreateQuery();
                        cmd.CommandText = "select skin, tex1, tex2, items, charType, petId from characters where charid = @charid";
                        cmd.Parameters.AddWithValue("@charid", i[2]);
                        string skin, tex1, tex2, inventory, cclass, petid;
                        skin = tex1 = tex2 = inventory = cclass = petid = null;
                        using (MySqlDataReader drdr = cmd.ExecuteReader())
                        {
                            while (drdr.Read())
                            {
                                skin = drdr.GetString("skin");
                                tex1 = drdr.GetString("tex1");
                                tex2 = drdr.GetString("tex2");
                                inventory = drdr.GetString("items");
                                cclass = drdr.GetString("charType");
                                petid = drdr.GetString("petId");
                            }
                        }

                        var _pet = dbx.GetPet(int.Parse(petid), acc);
                        result += $"<Record><WaveNumber>{i[0]}</WaveNumber><Time>{i[4]}</Time><PlayData><CharacterData>";
                        if (acc.Guild.Name != null) result += $@"<GuildName>{acc.Guild.Name}</GuildName><GuildRank>{acc.Guild.Rank}</GuildRank>";
                        result += $"<Id>{i[2]}</Id><Texture>{skin}</Texture><Tex1>{tex1}</Tex1><Tex2>{tex2}</Tex2><Inventory>{inventory}</Inventory><Name>{acc.Name}</Name><Class>{cclass}</Class></CharacterData>";
                        result += "<Pet name=\"" + _pet.SkinName + "\" type=\"" + _pet.Type + "\" instanceId=\"" + _pet.InstanceId + "\" rarity=\"" + _pet.Rarity + "\" maxAbilityPower=\"" + _pet.MaxAbilityPower + "\" skin=\"" + _pet.Skin + "\" family=\"" + "Farm" + "\"><Abilities>";
                        for (int e = 0; e < 3; e++)
                            result += "<Ability type=\"" + _pet.Abilities[e].Type + "\" power=\"" + _pet.Abilities[e].Power + "\" points=\"" + _pet.Abilities[e].Points + "\"/>";
                        result += "</Abilities></Pet></PlayData></Record>";
                    }
                    result += "</ArenaRecords>";
                }
            }
            byte[] buf = Encoding.UTF8.GetBytes(result);
            Context.Response.ContentType = "text/*";
            Context.Response.OutputStream.Write(buf, 0, buf.Length);
        }
All Usage Examples Of db.Database::GetArenaLeaderboards