public async Task <IActionResult> Products()
        {
            ViewData.Add("Title", "Products");
            ViewData.Add("Description", "Items for sale, past portfolio");
            ViewData.Add("Keywords", "Products, For sale, portfolio");

            var model = await _cacheService.GetAsync("products", async() =>
            {
                var products = new Products();

                try
                {
                    var etsyTask      = _etsyClient.GetListings();
                    var ebayTask      = _ebayClient.GetUserListings(_ebayConfig.UserId);
                    var instagramTask = _instagramClient.GetRecentMedia();

                    products.Etsy.ShopListings        = await etsyTask;
                    products.Ebay.ShopListings        = await ebayTask;
                    products.Instagram.PortfolioItems = await instagramTask;

                    products.Etsy.ShopUrl  = Consts.EtsyUrl;
                    products.Ebay.ShopUrl  = Consts.EbayUrl;
                    products.Instagram.Url = Consts.InstagramUrl;
                }
                catch (Exception ex)
                {
                    _emailService.SendErrorAlert(ex.ToString());
                }

                return(products);
            }, 60).Unwrap();

            return(View(model));
        }