public static List <string> GetSuperTypes(Dictionary <string, string> query = null)
        {
            try
            {
                string queryString = string.Empty;
                HttpResponseMessage stringTask;
                List <string>       superTypes = new List <string>();
                query = QueryBuilderHelper.GetDefaultQuery(query);

                using (HttpClient client = QueryBuilderHelper.SetupClient())
                {
                    stringTask = QueryBuilderHelper.BuildTaskString(query, ref queryString, client, ResourceTypes.SuperTypes);
                    SuperType type = QueryBuilderHelper.CreateObject <SuperType>(stringTask);
                    superTypes.AddRange(type.Types);
                    return(superTypes);
                }
            }
            catch (Exception ex)
            {
                List <string> errors = new List <string>()
                {
                    ex.Message
                };
                return(errors);
            }
        }
Example #2
0
        public static T Get <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 = QueryBuilderHelper.BuildTaskString(query, ref queryString, client, type);
                    var result     = QueryBuilderHelper.CreateObject <T>(stringTask);

                    if (result is IBaseQueryModel model)
                    {
                        model.PagingInfo = HttpResponseToPagingInfo.MapFrom(stringTask.Headers);
                        return((T)model);
                    }

                    return(result);
                }
            }
            catch (Exception ex)
            {
                return((T)Convert.ChangeType(ex.Message, typeof(T)));
            }
        }
Example #3
0
        /// <summary>
        /// Get all of the cards. This call will take a while to finish.
        /// </summary>
        /// <param name="query"></param>
        /// <returns></returns>
        // TODO: Make this call more generic
        public static List <PokemonCard> All(Dictionary <string, string> query = null)
        {
            using (HttpClient client = QueryBuilderHelper.SetupClient())
            {
                HttpResponseMessage stringTask;
                List <Pokemon>      items      = new List <Pokemon>();
                List <PokemonCard>  mergedList = new List <PokemonCard>();
                bool 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" }
                    };
                }

                for (int i = 0; i < int.Parse(query[CardQueryTypes.PageSize]); i++)
                {
                    string queryString = string.Empty;
                    stringTask = QueryBuilderHelper.BuildTaskString(query, ref queryString, client, ResourceTypes.Cards);
                    if (stringTask.IsSuccessStatusCode)
                    {
                        Pokemon 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 (Pokemon pokemon in items)
                {
                    mergedList.AddRange(pokemon.Cards);
                }

                return(mergedList);
            }
        }
        public static List <SetData> Find(Dictionary <string, string> query)
        {
            string queryString = string.Empty;

            using (HttpClient client = QueryBuilderHelper.SetupClient())
            {
                HttpResponseMessage stringTask = QueryBuilderHelper.BuildTaskString(query, ref queryString, client, ResourceTypes.Sets);
                Set set = QueryBuilderHelper.CreateObject <Set>(stringTask);

                return(set.Cards);
            }
        }
Example #5
0
        public static async Task <List <SetData> > Find(Dictionary <string, string> query)
        {
            var queryString = string.Empty;

            using (var client = QueryBuilderHelper.SetupClient())
            {
                var stringTask = await QueryBuilderHelper.BuildTaskString(query, queryString, client, ResourceTypes.Sets);

                var set = QueryBuilderHelper.CreateObject <Set>(stringTask);

                return(set.Cards);
            }
        }
Example #6
0
        public static T Find <T>(string id)
        {
            try
            {
                var type = QueryBuilderHelper.GetType <T>();

                using (var client = QueryBuilderHelper.SetupClient())
                {
                    var stringTask = client.GetAsync($"{type}/{id}").Result;
                    return(QueryBuilderHelper.CreateObject <T>(stringTask));
                }
            }
            catch (Exception ex)
            {
                return((T)Convert.ChangeType(ex.Message, typeof(T)));
            }
        }
Example #7
0
        public static T Get <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 = QueryBuilderHelper.BuildTaskString(query, ref queryString, client, type);
                    return(QueryBuilderHelper.CreateObject <T>(stringTask));
                }
            }
            catch (Exception ex)
            {
                return((T)Convert.ChangeType(ex.Message, typeof(T)));
            }
        }
Example #8
0
 public static Pokemon GetPokemonCards(Dictionary <string, string> query = null)
 {
     try
     {
         var queryString = string.Empty;
         using (var client = QueryBuilderHelper.SetupClient())
         {
             var stringTask = QueryBuilderHelper.BuildTaskString(query, ref queryString, client);
             return(QueryBuilderHelper.CreateObject <Pokemon>(stringTask));
         }
     }
     catch (Exception ex)
     {
         return(new Pokemon {
             Errors = new List <string> {
                 ex.Message
             }
         });
     }
 }
Example #9
0
        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
                });
            }
        }
Example #10
0
 public static List <string> GetTypes(Dictionary <string, string> query = null)
 {
     try
     {
         var queryString = string.Empty;
         var superTypes  = new List <string>();
         using (var client = QueryBuilderHelper.SetupClient())
         {
             var stringTask =
                 QueryBuilderHelper.BuildTaskString(null, ref queryString, client, ResourceTypes.Types);
             var type = QueryBuilderHelper.CreateObject <TypeData>(stringTask);
             superTypes.AddRange(type.Types);
             return(superTypes);
         }
     }
     catch (Exception ex)
     {
         return(new List <string> {
             ex.Message
         });
     }
 }
Example #11
0
        public static async Task <SetData> GetSetsAsync(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 <SetData>(stringTask));
                }
            }
            catch (Exception ex)
            {
                return(new SetData {
                    Errors = new List <string> {
                        ex.Message
                    }
                });
            }
        }
        public static SetData GetSets(Dictionary <string, string> query = null)
        {
            try
            {
                string queryString = string.Empty;
                HttpResponseMessage stringTask;

                using (HttpClient client = QueryBuilderHelper.SetupClient())
                {
                    stringTask = QueryBuilderHelper.BuildTaskString(query, ref queryString, client);
                    return(QueryBuilderHelper.CreateObject <SetData>(stringTask));
                }
            }
            catch (Exception ex)
            {
                SetData set = new SetData();
                set.Errors = new List <string>()
                {
                    ex.Message
                };
                return(set);
            }
        }
        public static Pokemon GetPokemonCards(Dictionary <string, string> query = null)
        {
            try
            {
                string queryString = string.Empty;
                HttpResponseMessage stringTask;

                using (HttpClient client = QueryBuilderHelper.SetupClient())
                {
                    stringTask = QueryBuilderHelper.BuildTaskString(query, ref queryString, client);
                    return(QueryBuilderHelper.CreateObject <Pokemon>(stringTask));
                }
            }
            catch (Exception ex)
            {
                Pokemon pokemon = new Pokemon();
                pokemon.Errors = new List <string>()
                {
                    ex.Message
                };
                return(pokemon);
            }
        }
Example #14
0
        public static Pokemon GetPokemonCards(Dictionary <string, string> query = null)
        {
            try
            {
                var queryString = string.Empty;
                using (var client = QueryBuilderHelper.SetupClient())
                {
                    var stringTask = QueryBuilderHelper.BuildTaskString(query, ref queryString, client);
                    var result     = QueryBuilderHelper.CreateObject <Pokemon>(stringTask);

                    result.PagingInfo = HttpResponseToPagingInfo.MapFrom(stringTask.Headers);

                    return(result);
                }
            }
            catch (Exception ex)
            {
                return(new Pokemon {
                    Errors = new List <string> {
                        ex.Message
                    }
                });
            }
        }
Example #15
0
        public static async Task <List <SetData> > All(Dictionary <string, string> query = null)
        {
            using (var client = QueryBuilderHelper.SetupClient())
            {
                var items      = new List <Set>();
                var mergedList = new List <SetData>();
                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, "100" }
                    };
                }

                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.BuildTaskString(query, queryString, client, ResourceTypes.Sets);

                    if (stringTask.IsSuccessStatusCode)
                    {
                        var info = HttpResponseToPagingInfo.MapFrom(stringTask.Headers);
                        totalCount = info.TotalCount;
                        amount     = info.Count;

                        var item = QueryBuilderHelper.CreateObject <Set>(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 set in items)
                {
                    mergedList.AddRange(set.Cards);
                }

                return(mergedList);
            }
        }