public static async Task <List <GTS.RequestGtsHolder> > GetUserTrades(uint userId) { var conn = new OpenConnection(); if (!conn.IsConnected()) { return(null); } const string s = "SELECT id, Offer, Request, Accepted FROM GTS WHERE user_id = @id"; var c = new MySqlCommand(s, conn.Connection); c.Parameters.AddWithValue("@id", userId); var ls = new List <GTS.RequestGtsHolder>(); var r = await c.ExecuteReaderAsync(); while (await r.ReadAsync()) { var req = new GTS.RequestGtsHolder { Index = (int)r["id"], Offer = JsonConvert.DeserializeObject <GTS.GamePokemon>((string)r["Offer"]), Request = JsonConvert.DeserializeObject <GTS.RequestData>((string)r["Request"]), Accepted = (bool)r["Accepted"] }; ls.Add(req); } await conn.Close(); return(ls); }
public static async Task <List <GTS.RequestGtsHolder> > GetTrades(uint startingIndex, GTS.FilterHolder filter) { var conn = new OpenConnection(); if (!conn.IsConnected()) { return(null); } var com = "SELECT id, Offer, Request, Accepted FROM GTS " + "WHERE (Accepted = 0 " + "AND OfferLevel >= @minLevel"; if (filter.Species != 0) { com += " AND (Offer->'$.species') = @species"; } const int ignoreNature = 25; if (filter.Nature != ignoreNature) { com += " AND (Offer ->'$.nature') = @nature"; } const int ignoreGender = 2; if (filter.Gender != ignoreGender) { com += " AND (Offer->'$.gender') = @gender"; } com += ") LIMIT @index, 4"; var mcom = new MySqlCommand(com, conn.Connection); mcom.Parameters.AddWithValue("@index", startingIndex); mcom.Parameters.AddWithValue("@minLevel", filter.MinLevel); if (filter.Nature != ignoreNature) { mcom.Parameters.AddWithValue("@nature", filter.Nature); } if (filter.Gender != ignoreGender) { mcom.Parameters.AddWithValue("@gender", filter.Gender); } if (filter.Species != 0) { mcom.Parameters.AddWithValue("@species", filter.Species); } var r = await mcom.ExecuteReaderAsync(); var ls = new List <GTS.RequestGtsHolder>(); while (await r.ReadAsync()) { var h = new GTS.RequestGtsHolder { Index = (int)r["id"], Offer = JsonConvert.DeserializeObject <GTS.GamePokemon>((string)r["Offer"]), Request = JsonConvert.DeserializeObject <GTS.RequestData>((string)r["Request"]), Accepted = (bool)r["Accepted"] }; ls.Add(h); } await conn.Close(); return(ls); }