示例#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 FeedListViewModel FeedList(FeedListModel model)
        {
            var centralFeedType = _feedTypeProvider[model.TypeId];

            var items = model.GroupId.HasValue ? _centralFeedHelper.GetGroupFeedItems(centralFeedType, model.GroupId.Value).ToList() :
                        _centralFeedHelper.GetCentralFeedItems(centralFeedType).ToList();

            if (!items.Any())
            {
                return(new FeedListViewModel());
            }

            var tabSettings = GetTabSettings(model.GroupId.HasValue, centralFeedType);

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

            var centralFeedModel = GetFeedListModel(model, filteredItems, centralFeedType);

            return(centralFeedModel);
        }