public IHttpActionResult GetManufacturerNavigation(int currentManufacturerId = 0) { var customerRolesIds = _workContext.CurrentCustomer.CustomerRoles .Where(cr => cr.Active).Select(cr => cr.Id).ToList(); string cacheKey = string.Format(ModelCacheEventConsumer.MANUFACTURER_NAVIGATION_MODEL_KEY, currentManufacturerId, _workContext.WorkingLanguage.Id, string.Join(",", customerRolesIds), _storeContext.CurrentStore.Id); var cacheModel = _cacheManager.Get(cacheKey, () => { var currentManufacturer = _manufacturerService.GetManufacturerById(currentManufacturerId); var manufacturers = _manufacturerService.GetAllManufacturers(pageSize: _catalogSettings.ManufacturersBlockItemsToDisplay); var model = new ManufacturerNavigationModel() { TotalManufacturers = manufacturers.TotalCount }; foreach (var manufacturer in manufacturers) { var modelMan = new ManufacturerBriefInfoModel() { Id = manufacturer.Id, Name = manufacturer.GetLocalized(x => x.Name), SeName = manufacturer.GetSeName(), IsActive = currentManufacturer != null && currentManufacturer.Id == manufacturer.Id, }; model.Manufacturers.Add(modelMan); } return(model); }); return(Ok(cacheModel)); }
/// <summary> /// Prepare manufacturer navigation model /// </summary> /// <param name="currentManufacturerId">Current manufacturer identifier</param> /// <returns>Manufacturer navigation model</returns> public virtual ManufacturerNavigationModel PrepareManufacturerNavigationModel(int currentManufacturerId) { var cacheKey = string.Format(ModelCacheEventConsumer.MANUFACTURER_NAVIGATION_MODEL_KEY, currentManufacturerId, _workContext.WorkingLanguage.Id, string.Join(",", _workContext.CurrentCustomer.GetCustomerRoleIds()), _storeContext.CurrentStore.Id); var cachedModel = _cacheManager.Get(cacheKey, () => { var currentManufacturer = _manufacturerService.GetManufacturerById(currentManufacturerId); var manufacturers = _manufacturerService.GetAllManufacturers(storeId: _storeContext.CurrentStore.Id, pageSize: _catalogSettings.ManufacturersBlockItemsToDisplay); var model = new ManufacturerNavigationModel { TotalManufacturers = manufacturers.TotalCount }; foreach (var manufacturer in manufacturers) { var modelMan = new ManufacturerBriefInfoModel { Id = manufacturer.Id, Name = _localizationService.GetLocalized(manufacturer, x => x.Name), SeName = _urlRecordService.GetSeName(manufacturer), IsActive = currentManufacturer != null && currentManufacturer.Id == manufacturer.Id, }; model.Manufacturers.Add(modelMan); } return(model); }); return(cachedModel); }