public static async Task <List <SetData> > FindAsync(Dictionary <string, string> query) { var queryString = string.Empty; using (var client = QueryBuilderHelper.SetupClient()) { var stringTask = await QueryBuilderHelper.BuildTaskStringAsync(query, queryString, client, ResourceTypes.Sets); var set = QueryBuilderHelper.CreateObject <Set>(stringTask); return(set.Cards); } }
public static async Task <T> GetAsync <T>(Dictionary <string, string> query = null) { try { var queryString = string.Empty; var type = QueryBuilderHelper.GetType <T>(ref query); using (var client = QueryBuilderHelper.SetupClient()) { var stringTask = await QueryBuilderHelper.BuildTaskStringAsync(query, queryString, client, type); return(QueryBuilderHelper.CreateObject <T>(stringTask)); } } catch (Exception ex) { return((T)Convert.ChangeType(ex.Message, typeof(T))); } }
public static async Task <Pokemon> GetPokemonCardsAsync(Dictionary <string, string> query = null) { try { var queryString = string.Empty; using (var client = QueryBuilderHelper.SetupClient()) { var stringTask = await QueryBuilderHelper.BuildTaskStringAsync(query, queryString, client); return(QueryBuilderHelper.CreateObject <Pokemon>(stringTask)); } } catch (Exception ex) { return(new Pokemon { Errors = new List <string> { ex.Message } }); } }
public static async Task <List <string> > GetSubTypesAsync(Dictionary <string, string> query = null) { try { var queryString = string.Empty; var superTypes = new List <string>(); using (var client = QueryBuilderHelper.SetupClient()) { var stringTask = await QueryBuilderHelper.BuildTaskStringAsync(null, queryString, client, ResourceTypes.SubTypes); var type = QueryBuilderHelper.CreateObject <SubType>(stringTask); superTypes.AddRange(type.Types); return(superTypes); } } catch (Exception ex) { return(new List <string> { ex.Message }); } }
/// <summary> /// Async: Get all of the cards. This call will take a while to finish. /// </summary> /// <param name="query"></param> /// <returns></returns> public static async Task <List <PokemonCard> > AllAsync(Dictionary <string, string> query = null) { using (var client = QueryBuilderHelper.SetupClient()) { var items = new List <Pokemon>(); var mergedList = new List <PokemonCard>(); var fetchAll = QueryBuilderHelper.FetchAll(ref query); if (query != null) { if (!query.ContainsKey(CardQueryTypes.Page)) { query.Add(CardQueryTypes.Page, "1"); } query.Add(CardQueryTypes.PageSize, "500"); } else { query = new Dictionary <string, string> { { CardQueryTypes.Page, "1" }, { CardQueryTypes.PageSize, "500" } }; } var totalCount = int.Parse(query[CardQueryTypes.PageSize]); int amount; for (var i = 0; i < totalCount; i += amount) { var queryString = string.Empty; var stringTask = await QueryBuilderHelper.BuildTaskStringAsync(query, queryString, client, ResourceTypes.Cards); if (stringTask.IsSuccessStatusCode) { var info = HttpResponseToPagingInfo.MapFrom(stringTask.Headers); totalCount = info.TotalCount; amount = info.Count; var item = QueryBuilderHelper.CreateObject <Pokemon>(stringTask); query[CardQueryTypes.Page] = (int.Parse(query[CardQueryTypes.Page]) + 1).ToString(); items.Add(item); if (!fetchAll) { break; } } else { break; } } // Create the list returned as a single list instead of a list of lists foreach (var pokemon in items) { mergedList.AddRange(pokemon.Cards); } return(mergedList); } }