/// <summary> /// Refreshes the runtime cache /// </summary> /// <param name="merchelloContext">The merchello context</param> /// <param name="basket">The <see cref="IBasket"/></param> public static void Refresh(IMerchelloContext merchelloContext, IBasket basket) { var cacheKey = MakeCacheKey(basket.Customer); merchelloContext.Cache.RuntimeCache.ClearCacheItem(cacheKey); var customerItemCache = merchelloContext.Services.ItemCacheService.GetItemCacheWithKey(basket.Customer, ItemCacheType.Basket); basket = new Basket(customerItemCache, basket.Customer); merchelloContext.Cache.RuntimeCache.GetCacheItem(cacheKey, () => basket); }
/// <summary> /// Instantiates a basket /// </summary> /// <param name="merchelloContext">The merchello context</param> /// <param name="customer">The customer associated with the basket</param> /// <returns>The <see cref="IBasket"/></returns> internal static IBasket GetBasket(IMerchelloContext merchelloContext, ICustomerBase customer) { Mandate.ParameterNotNull(merchelloContext, "merchelloContext"); Mandate.ParameterNotNull(customer, "customer"); var cacheKey = MakeCacheKey(customer); var basket = (IBasket)merchelloContext.Cache.RuntimeCache.GetCacheItem(cacheKey); if (basket != null) return basket; var customerItemCache = merchelloContext.Services.ItemCacheService.GetItemCacheWithKey(customer, ItemCacheType.Basket); basket = new Basket(customerItemCache, customer); merchelloContext.Cache.RuntimeCache.GetCacheItem(cacheKey, () => basket); return basket; }