Exemplo n.º 1
0
        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));
        }
Exemplo n.º 2
0
        /// <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);
        }