/// <summary> /// Prepare widget zone model /// </summary> /// <param name="widgetZone">Widget zone entity</param> /// <param name="storeId">Store id number</param> /// <param name="languageId">Language entity id number</param> /// <returns>Widget zone model</returns> public virtual WidgetZoneModel PrepareWidgetZoneModel(WidgetZone widgetZone, int languageId, int storeId) { if (widgetZone == null) { throw new Exception("Widget zone can't be null"); } var settings = _settingService.LoadSetting <qBoSliderSettings>(storeId); //1.0.5 all with Alc var customer = _workContext.CurrentCustomer; var customerRoles = _customerService.GetCustomerRoleIds(customer); var customerRolesString = string.Join(",", customerRoles); //prepare widget zone model with slide and prepare cache key to load slider faster next time var cacheKey = _cacheKeyService.PrepareKey(ModelCacheEventConsumer.PICTURE_URL_MODEL_KEY, widgetZone.Id, languageId, storeId, DateTime.UtcNow.ToShortDateString(), customerRolesString); //load model from cache or process it var model = settings.UseStaticCache ? _staticCacheManager.Get(cacheKey, () => { return(PrepareSliderModel(widgetZone, languageId, storeId)); }) : PrepareSliderModel(widgetZone, languageId, storeId); return(model); }