예제 #1
0
 protected virtual FeedFilterStateViewModel MapToFilterStateViewModel(FeedFilterStateModel model)
 {
     return(new FeedFilterStateViewModel()
     {
         ShowPinned = model.ShowPinned ?? false,
         IncludeBulletin = model.IncludeBulletin ?? false,
         ShowSubscribed = model.ShowSubscribed ?? false
     });
 }
예제 #2
0
        protected virtual FeedFilterStateModel GetFilterStateModel()
        {
            var stateModel = _feedFilterStateService.GetFiltersState();

            var result = new FeedFilterStateModel()
            {
                ShowPinned      = stateModel.PinnedFilterSelected,
                IncludeBulletin = stateModel.BulletinFilterSelected,
                ShowSubscribed  = stateModel.SubscriberFilterSelected
            };

            return(result);
        }
예제 #3
0
 protected virtual bool IsEmptyFilters(FeedFilterStateModel filterState, bool isCookiesExist)
 {
     return(!isCookiesExist || filterState == null || !IsAnyFilterSet(filterState));
 }
예제 #4
0
 private bool IsAnyFilterSet(FeedFilterStateModel filterState)
 {
     return(filterState.ShowPinned.HasValue ||
            filterState.IncludeBulletin.HasValue ||
            filterState.ShowSubscribed.HasValue);
 }
예제 #5
0
        public virtual IEnumerable <IFeedItem> ApplyFilters(IEnumerable <IFeedItem> items, FeedFilterStateModel filterState, FeedSettings settings)
        {
            if (filterState.ShowSubscribed.GetValueOrDefault() && settings.HasSubscribersFilter)
            {
                items = items.Where(i =>
                                    i is ISubscribable subscribable &&
                                    _subscribeService.IsSubscribed(_intranetMemberService.GetCurrentMember().Id, subscribable));
            }

            if (filterState.ShowPinned.GetValueOrDefault() && settings.HasPinnedFilter)
            {
                items = items.Where(i => i.IsPinned);
            }

            items = ApplyAdditionalFilters(items);
            return(items);
        }