/// <summary>
        /// This method Adds objects to cache
        /// </summary>
        /// <returns>List of keys added to cache </returns>
        private static string[] AddDataIntoCache()
        {
            List <Product> products = LoadProductsFromDatabase();

            CacheItem[] items = new CacheItem[products.Count];
            string[]    keys  = new String[products.Count];

            for (int i = 0; i < products.Count; i++)
            {
                keys[i] = products[i].Id.ToString();
                CacheItem item = new CacheItem(products[i]);

                IDictionary <string, string> param = new Dictionary <string, string>();
                param.Add("ProductID", products[i].Id.ToString());
                param.Add("ConnectionString", _connectionString);
                CustomDependency customDependency = new CustomDependency(ConfigurationManager.AppSettings["ProviderName"], param);
                item.Dependency = new CacheDependency(customDependency);

                items[i] = item;
            }

            IDictionary <string, CacheItem> cacheItems = GetCacheItemDictionary(keys, items);

            _cache.AddBulk(cacheItems);

            // Print output on console
            Console.WriteLine("Items are added to Cache.");

            return(keys);
        }
        /// <summary>
        /// This method adds multiple objects in the cache using bulk api
        /// </summary>
        /// <param name="keys"> Dictionary of keys and Cache Items </param>
        private static void AddMultipleObjectsToCache(IDictionary <string, CacheItem> items)
        {
            // Adding Bulk Items
            // Bulk operation returns
            IDictionary <string, Exception> result = _cache.AddBulk(items);

            if (result.Count == 0)
            {
                // Print output on console
                Console.WriteLine("\nAll items are successfully added to cache.");
            }
            else
            {
                // Print output on console
                Console.WriteLine("\nOne or more items could not be added to the cache. Iterate hashmap for details.");
                // Iterate hashmap
                for (IEnumerator iter = result.Values.GetEnumerator(); iter.MoveNext();)
                {
                    Product product = (Product)iter;
                    PrintProductDetails(product);
                }
            }
        }
        /// <summary>
        /// This method Adds objects to cache
        /// </summary>
        /// <returns>List of keys added to cache </returns>
        private static string[] AddDataIntoCache()
        {
            List <Product> products = LoadProductsFromDatabase();

            CacheItem[] items = new CacheItem[products.Count];
            string[]    keys  = new String[products.Count];

            for (int i = 0; i < products.Count; i++)
            {
                keys[i] = products[i].Id.ToString();
                CacheItem item = new CacheItem(products[i]);
                item.Dependency = new CacheDependency(new Dependency(products[i].Id, _connectionString));
                items[i]        = item;
            }

            IDictionary <string, CacheItem> cacheItems = GetCacheItemDictionary(keys, items);

            _cache.AddBulk(cacheItems);

            // Print output on console
            Console.WriteLine("Items are added to Cache.");

            return(keys);
        }