public ActionResult PopularArticleTags()
        {
            var cacheKey   = string.Format(ModelCacheEventConsumer.ARTICLETAG_POPULAR_MODEL_KEY, _services.WorkContext.WorkingLanguage.Id, _services.SiteContext.CurrentSite.Id);
            var cacheModel = _services.Cache.Get(cacheKey, () =>
            {
                var model = new PopularArticlesTagsModel();

                //get all tags
                var allTags = _articlesTagService
                              .GetAllArticleTags()
                              //filter by current site
                              .Where(x => _articlesTagService.GetArticleCount(x.Id, _services.SiteContext.CurrentSite.Id) > 0)
                              //order by article count
                              .OrderByDescending(x => _articlesTagService.GetArticleCount(x.Id, _services.SiteContext.CurrentSite.Id))
                              .ToList();

                var tags = allTags
                           .Take(_catalogSettings.NumberOfArticleTags)
                           .ToList();
                //sorting
                tags = tags.OrderBy(x => x.GetLocalized(y => y.Name)).ToList();

                model.TotalTags = allTags.Count;

                foreach (var tag in tags)
                {
                    model.Tags.Add(new ArticleTagModel()
                    {
                        Id           = tag.Id,
                        Name         = tag.GetLocalized(y => y.Name),
                        SeName       = tag.GetSeName(),
                        ArticleCount = _articlesTagService.GetArticleCount(tag.Id, _services.SiteContext.CurrentSite.Id)
                    });
                }
                return(model);
            });

            return(PartialView(cacheModel));
        }
        public ActionResult ArticlesTagsAll()
        {
            var model = new PopularArticlesTagsModel();

            model.Tags = _articlesTagService
                         .GetAllArticleTags()
                         //filter by current site
                         .Where(x => _articlesTagService.GetArticleCount(x.Id, _services.SiteContext.CurrentSite.Id) > 0)
                         //sort by name
                         .OrderBy(x => x.GetLocalized(y => y.Name))
                         .Select(x =>
            {
                var ptModel = new ArticleTagModel
                {
                    Id           = x.Id,
                    Name         = x.GetLocalized(y => y.Name),
                    SeName       = x.GetSeName(),
                    ArticleCount = _articlesTagService.GetArticleCount(x.Id, _services.SiteContext.CurrentSite.Id)
                };
                return(ptModel);
            })
                         .ToList();
            return(View(model));
        }