public ActionResult Sitemap() { if (!_commonSettings.SitemapEnabled) return RedirectToRoute("HomePage"); var customerRolesIds = _workContext.CurrentCustomer.CustomerRoles .Where(cr => cr.Active).Select(cr => cr.Id).ToList(); string cacheKey = string.Format(ModelCacheEventConsumer.SITEMAP_PAGE_MODEL_KEY, _workContext.WorkingLanguage.Id, string.Join(",", customerRolesIds), _storeContext.CurrentStore.Id); var cachedModel = _cacheManager.Get(cacheKey, () => { var model = new SitemapModel() { BlogEnabled = _blogSettings.Enabled, ForumEnabled = _forumSettings.ForumsEnabled, NewsEnabled = _newsSettings.Enabled, }; if (_commonSettings.SitemapIncludeCategories) { var categories = _categoryService.GetAllCategories(); model.Categories = categories.Select(x => x.ToModel()).ToList(); } if (_commonSettings.SitemapIncludeManufacturers) { var manufacturers = _manufacturerService.GetAllManufacturers(); model.Manufacturers = manufacturers.Select(x => x.ToModel()).ToList(); } if (_commonSettings.SitemapIncludeProducts) { //limit product to 200 until paging is supported on this page var products = _productService.SearchProducts(storeId: _storeContext.CurrentStore.Id, visibleIndividuallyOnly: true, pageSize: 200); model.Products = products.Select(product => new ProductOverviewModel() { Id = product.Id, Name = product.GetLocalized(x => x.Name), ShortDescription = product.GetLocalized(x => x.ShortDescription), FullDescription = product.GetLocalized(x => x.FullDescription), SeName = product.GetSeName(), }).ToList(); } if (_commonSettings.SitemapIncludeTopics) { var topics = _topicService.GetAllTopics(_storeContext.CurrentStore.Id) .ToList() .FindAll(t => t.IncludeInSitemap); model.Topics = topics.Select(topic => new TopicModel() { Id = topic.Id, SystemName = topic.SystemName, IncludeInSitemap = topic.IncludeInSitemap, IsPasswordProtected = topic.IsPasswordProtected, Title = topic.GetLocalized(x => x.Title), }) .ToList(); } return model; }); return View(cachedModel); }
public ActionResult Sitemap() { if (!_commonSettings.SitemapEnabled) return RedirectToRoute("HomePage"); var model = new SitemapModel(); if (_commonSettings.SitemapIncludeCategories) { var categories = _categoryService.GetAllCategories(); model.Categories = categories.Select(x => x.ToModel()).ToList(); } if (_commonSettings.SitemapIncludeManufacturers) { var manufacturers = _manufacturerService.GetAllManufacturers(); model.Manufacturers = manufacturers.Select(x => x.ToModel()).ToList(); } if (_commonSettings.SitemapIncludeProducts) { //limit product to 200 until paging is supported on this page var products = _productService.SearchProducts(storeId: _storeContext.CurrentStore.Id, visibleIndividuallyOnly: true, pageSize: 200); model.Products = products.Select(product => new ProductOverviewModel() { Id = product.Id, Name = product.GetLocalized(x => x.Name), ShortDescription = product.GetLocalized(x => x.ShortDescription), FullDescription = product.GetLocalized(x => x.FullDescription), SeName = product.GetSeName(), }).ToList(); } if (_commonSettings.SitemapIncludeTopics) { var topics = _topicService.GetAllTopics(_storeContext.CurrentStore.Id) .ToList() .FindAll(t => t.IncludeInSitemap); model.Topics = topics.Select(topic => new TopicModel() { Id = topic.Id, SystemName = topic.SystemName, IncludeInSitemap = topic.IncludeInSitemap, IsPasswordProtected = topic.IsPasswordProtected, Title = topic.GetLocalized(x => x.Title), }) .ToList(); } return View(model); }
//sitemap page public ActionResult Sitemap() { if (!_commonSettings.SitemapEnabled) return RedirectToAction("Index", "Home"); var model = new SitemapModel(); if (_commonSettings.SitemapIncludeCategories) { var categories = _categoryService.GetAllCategories(); model.Categories = categories.Select(x => x.ToModel()).ToList(); } if (_commonSettings.SitemapIncludeManufacturers) { var manufacturers = _manufacturerService.GetAllManufacturers(); model.Manufacturers = manufacturers.Select(x => x.ToModel()).ToList(); } if (_commonSettings.SitemapIncludeProducts) { //limit product to 200 until paging is supported on this page IList<int> filterableSpecificationAttributeOptionIds = null; var products = _productService.SearchProducts(0, 0, null, null, null, 0, null, false, 0, null, ProductSortingEnum.Position, 0, 200, false, out filterableSpecificationAttributeOptionIds); model.Products = products.Select(x => x.ToModel()).ToList(); } if (_commonSettings.SitemapIncludeTopics) { var topics = _topicService.GetAllTopics().ToList().FindAll(t => t.IncludeInSitemap); model.Topics = topics.Select(x => x.ToModel()).ToList(); } return View(model); }
public ActionResult Sitemap() { if (!_commonSettings.SitemapEnabled) return RedirectToRoute("HomePage"); var model = new SitemapModel(); if (_commonSettings.SitemapIncludeCategories) { var categories = _categoryService.GetAllCategories(); model.Categories = categories.Select(x => x.ToModel()).ToList(); } if (_commonSettings.SitemapIncludeManufacturers) { var manufacturers = _manufacturerService.GetAllManufacturers(); model.Manufacturers = manufacturers.Select(x => x.ToModel()).ToList(); } if (_commonSettings.SitemapIncludeProducts) { //limit product to 200 until paging is supported on this page IList<int> filterableSpecificationAttributeOptionIds = null; var products = _productService.SearchProducts(0, 0, null, null, null, 0, null, false, false, 0, null, ProductSortingEnum.Position, 0, 200, false, out filterableSpecificationAttributeOptionIds); model.Products = products.Select(product => new ProductOverviewModel() { Id = product.Id, Name = product.GetLocalized(x => x.Name), ShortDescription = product.GetLocalized(x => x.ShortDescription), FullDescription = product.GetLocalized(x => x.FullDescription), SeName = product.GetSeName(), }).ToList(); } if (_commonSettings.SitemapIncludeTopics) { var topics = _topicService.GetAllTopics().ToList().FindAll(t => t.IncludeInSitemap); model.Topics = topics.Select(topic => new TopicModel() { Id = topic.Id, SystemName = topic.SystemName, IncludeInSitemap = topic.IncludeInSitemap, IsPasswordProtected = topic.IsPasswordProtected, Title = topic.GetLocalized(x => x.Title), }) .ToList(); } return View(model); }