Ejemplo n.º 1
0
        public virtual ActionResult List(FeedListModel model)
        {
            var centralFeedType = _centralFeedTypeProvider[model.TypeId];
            var items           = GetCentralFeedItems(centralFeedType).ToList();

            if (IsEmptyFilters(model.FilterState, _feedFilterStateService.CentralFeedCookieExists()))
            {
                model.FilterState = GetFilterStateModel();
            }

            var tabSettings = _centralFeedService.GetSettings(centralFeedType);

            var filteredItems = _centralFeedFilterService.ApplyFilters(items, model.FilterState, tabSettings).ToList();

            var currentVersion = _centralFeedService.GetFeedVersion(filteredItems);

            if (model.Version.HasValue && currentVersion == model.Version.Value)
            {
                return(null);
            }

            var centralFeedModel = GetFeedListViewModel(model, filteredItems, centralFeedType);
            var filterState      = MapToFilterState(centralFeedModel.FilterState);

            _feedFilterStateService.SaveFiltersState(filterState);

            return(PartialView(ListViewPath, centralFeedModel));
        }
        public IEnumerable <ActivityFeedTabModel> GetTabs(IPublishedContent currentPage)
        {
            yield return(GetMainFeedTab(currentPage));

            var allActivityTypes = _activityTypeProvider.All;

            foreach (var content in _contentProvider.GetRelatedPages())
            {
                var tabType      = GetFeedTabType(content);
                var activityType = allActivityTypes.SingleOrDefault(a => a.ToInt() == tabType.ToInt());

                if (activityType == null)
                {
                    continue;
                }

                var settings = _centralFeedService.GetSettings(tabType);
                yield return(new ActivityFeedTabModel
                {
                    Content = content,
                    Type = tabType,
                    HasSubscribersFilter = settings.HasSubscribersFilter,
                    HasPinnedFilter = settings.HasPinnedFilter,
                    IsActive = content.IsAncestorOrSelf(currentPage),
                    Links = _feedLinkService.GetCreateLinks(tabType)
                });
            }
        }
 private FeedSettings GetTabSettings(bool isGroupFeed, Enum centralFeedType)
 {
     return(isGroupFeed ? _groupFeedService.GetSettings(centralFeedType) : _centralFeedService.GetSettings(centralFeedType));
 }