Пример #1
0
        /// <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);
        }