/*******************************
        * GetAllItems()
        *******************************/
        public static void GetAllItems(HttpClient client)
        {
            var            allItemsResp = client.GetAsync("item").Result;
            ItemCollection allItems     = allItemsResp.Content.ReadAsAsync <ItemCollection>().Result;
            bool           keepShopping = true;

            while (keepShopping)
            {
                Console.Clear();

                foreach (var item in allItems.results)
                {
                    Console.WriteLine(item.name.ToUpper());
                }

                var pageMovement = Extras.WriteRead(
                    "\n (N)ext page |"
                    + "(P)revious page |"
                    + "(G)et Details |"
                    + "(E)xit: ").ToUpper();

                switch (pageMovement)
                {
                case "N":
                    allItems = allItems.GetNext(client);
                    break;

                case "P":
                    allItems = allItems.GetPrevious(client);
                    break;

                case "G":
                    GetSingleItem(client);
                    keepShopping = false;
                    break;

                default:
                    Extras.Menu();
                    keepShopping = false;
                    break;
                }
            }
        }
        /*******************************
        * CatchEmAll()
        *******************************/
        public static void CatchEmAll(HttpClient client)
        {
            HttpResponseMessage allPokemonResp = client.GetAsync("pokemon").Result;
            PokemonCollection   catchEmAll     = allPokemonResp.Content.ReadAsAsync <PokemonCollection>().Result;
            bool keepCatching = true;

            while (keepCatching)
            {
                Console.Clear();

                foreach (var pokemon in catchEmAll.Results)
                {
                    Console.WriteLine(pokemon.name.ToUpper());
                }

                var pageMovement = Extras.WriteRead(
                    "\n (N)ext page |"
                    + "(P)revious page |"
                    + "(G)et Details |"
                    + "(E)xit: ").ToUpper();

                switch (pageMovement)
                {
                case "N":
                    catchEmAll = catchEmAll.GetNext(client);
                    break;

                case "P":
                    catchEmAll = catchEmAll.GetPrevious(client);
                    break;

                case "G":
                    GetSinglePokemon(client);
                    keepCatching = false;
                    break;

                default:
                    Extras.Menu();
                    keepCatching = false;
                    break;
                }
            }
        }
        /*******************************
        * GetSingleItem()
        *******************************/
        public static void GetSingleItem(HttpClient client)
        {
            Console.WriteLine("Which Item would you like to see Details for?");
            string iId = Console.ReadLine();

            var  response = client.GetAsync($"item/{iId}").Result;
            Item itemInst = response.Content.ReadAsAsync <Item>().Result;

            Console.WriteLine(
                "\n NAME: " + itemInst.name
                + "\n COST: " + itemInst.cost
                + "\n ATTRIBUTES: "
                );

            foreach (var attr in itemInst.attributes)
            {
                Console.WriteLine($"\t {attr.name}");
            }

            Console.ReadLine();

            Extras.Menu();
        }