public SearchResultLivePageViewModel(
            ILoggerFactory loggerFactory,
            ApplicationLayoutManager applicationLayoutManager,
            NiconicoSession niconicoSession,
            SearchProvider searchProvider,
            PageManager pageManager,
            SearchHistoryRepository searchHistoryRepository,
            NicoLiveCacheRepository nicoLiveCacheRepository,
            OpenLiveContentCommand openLiveContentCommand
            )
            : base(loggerFactory.CreateLogger <SearchResultLivePageViewModel>())
        {
            ApplicationLayoutManager = applicationLayoutManager;
            NiconicoSession          = niconicoSession;
            SearchProvider           = searchProvider;
            PageManager = pageManager;
            _searchHistoryRepository = searchHistoryRepository;
            _nicoLiveCacheRepository = nicoLiveCacheRepository;
            OpenLiveContentCommand   = openLiveContentCommand;

            SelectedSearchSort = new ReactiveProperty <LiveSearchPageSortOrder>(SortOptionItems[0], mode: ReactivePropertyMode.DistinctUntilChanged);
            SelectedLiveStatus = new ReactiveProperty <LiveStatus>(LiveStatusItems[0], mode: ReactivePropertyMode.DistinctUntilChanged);
            SelectedProviders  = new ObservableCollection <ProviderType>();

            IsTagSearch          = new ReactiveProperty <bool>(false);
            IsTimeshiftAvairable = new ReactiveProperty <bool>(false);
            IsHideMemberOnly     = new ReactiveProperty <bool>(false);
            IsDisableGrouping    = new ReactiveProperty <bool>(false);

            Observable.Merge(
                SelectedSearchSort.ToUnit(),
                SelectedLiveStatus.ToUnit(),
                SelectedProviders.CollectionChangedAsObservable().ToUnit()
                )
            .Subscribe(async _ =>
            {
                if (_NowNavigatingTo)
                {
                    return;
                }

                if (_query is not null)
                {
                    if (_query.Keyword == Keyword &&
                        _query.SortOrder == SelectedSearchSort.Value &&
                        _query.LiveStatus == SelectedLiveStatus.Value &&
                        (_query.ProviderTypes?.Any() ?? false) &&
                        SelectedProviders.Count == _query.ProviderTypes.Length &&
                        SelectedProviders.All(x => _query.ProviderTypes.Contains(x))
                        )
                    {
                        return;
                    }
                }

                ResetList();
            })
            .AddTo(_CompositeDisposable);
        }
 public SearchTargetMigration_V_1_1_0(
     SearchHistoryRepository searchHistoryRepository,
     AppFlagsRepository appFlagsRepository
     )
 {
     _searchHistoryRepository = searchHistoryRepository;
     _appFlagsRepository      = appFlagsRepository;
 }
        public UserDataService()
        {
            ImdbContext context = new ImdbContext();

            _users           = new UserRepository(context);
            _bookmarks       = new BookmarkRepository(context);
            _comments        = new CommentsRepository(context);
            _searchHistory   = new SearchHistoryRepository(context);
            _specialRoles    = new SpecialRolesRepository(context);
            _userRatings     = new UserRatingRepository(context);
            _flaggedComments = new FlaggedCommentsRepository(context);
        }
Esempio n. 4
0
 public SearchResultMylistPageViewModel(
     ApplicationLayoutManager applicationLayoutManager,
     SearchProvider searchProvider,
     PageManager pageManager,
     SearchHistoryRepository searchHistoryRepository
     )
 {
     SelectedSearchSort       = new ReactivePropertySlim <MylistSearchSortOptionListItem>();
     SelectedSearchTarget     = new ReactiveProperty <SearchTarget>();
     ApplicationLayoutManager = applicationLayoutManager;
     SearchProvider           = searchProvider;
     PageManager = pageManager;
     _searchHistoryRepository = searchHistoryRepository;
 }
Esempio n. 5
0
        public SearchResultTagPageViewModel(
            ILoggerFactory loggerFactory,
            ApplicationLayoutManager applicationLayoutManager,
            NiconicoSession niconicoSession,
            SearchProvider searchProvider,
            TagFollowProvider tagFollowProvider,
            SubscriptionManager subscriptionManager,
            PageManager pageManager,
            SearchHistoryRepository searchHistoryRepository,
            Services.DialogService dialogService,
            VideoPlayWithQueueCommand videoPlayWithQueueCommand,
            PlaylistPlayAllCommand playlistPlayAllCommand,
            AddTagSearchSubscriptionCommand addTagSearchSubscriptionCommand,
            SelectionModeToggleCommand selectionModeToggleCommand
            )
            : base(loggerFactory.CreateLogger <SearchResultTagPageViewModel>())
        {
            SearchProvider                  = searchProvider;
            _tagFollowProvider              = tagFollowProvider;
            SubscriptionManager             = subscriptionManager;
            PageManager                     = pageManager;
            _searchHistoryRepository        = searchHistoryRepository;
            ApplicationLayoutManager        = applicationLayoutManager;
            NiconicoSession                 = niconicoSession;
            HohoemaDialogService            = dialogService;
            VideoPlayWithQueueCommand       = videoPlayWithQueueCommand;
            PlaylistPlayAllCommand          = playlistPlayAllCommand;
            AddTagSearchSubscriptionCommand = addTagSearchSubscriptionCommand;
            SelectionModeToggleCommand      = selectionModeToggleCommand;
            FailLoading                     = new ReactiveProperty <bool>(false)
                                              .AddTo(_CompositeDisposable);

            LoadedPage = new ReactiveProperty <int>(1)
                         .AddTo(_CompositeDisposable);

            SelectedSearchTarget = new ReactiveProperty <SearchTarget>();


            CurrentPlaylistToken = Observable.CombineLatest(
                this.ObserveProperty(x => x.SearchVideoPlaylist),
                this.ObserveProperty(x => x.SelectedSortOption),
                (x, y) => new PlaylistToken(x, y)
                )
                                   .ToReadOnlyReactivePropertySlim()
                                   .AddTo(_CompositeDisposable);
        }
Esempio n. 6
0
        public SearchResultCommunityPageViewModel(
            ApplicationLayoutManager applicationLayoutManager,
            PageManager pageManager,
            SearchProvider searchProvider,
            NiconicoLoginService niconicoLoginService,
            SearchHistoryRepository searchHistoryRepository
            )
        {
            ApplicationLayoutManager = applicationLayoutManager;
            PageManager              = pageManager;
            SearchProvider           = searchProvider;
            NiconicoLoginService     = niconicoLoginService;
            _searchHistoryRepository = searchHistoryRepository;
            SelectedSearchSort       = new ReactivePropertySlim <CommunitySearchSortOptionListItem>();
            SelectedSearchMode       = new ReactivePropertySlim <CommynitySearchModeOptionListItem>();

            SelectedSearchTarget = new ReactiveProperty <SearchTarget>();
        }
Esempio n. 7
0
        public SearchPageViewModel(
            IScheduler scheduler,
            ApplicationLayoutManager applicationLayoutManager,
            NiconicoSession niconicoSession,
            SearchProvider searchProvider,
            PageManager pageManager,
            SearchHistoryRepository searchHistoryRepository
            )
        {
            _scheduler = scheduler;
            ApplicationLayoutManager = applicationLayoutManager;
            NiconicoSession          = niconicoSession;
            SearchProvider           = searchProvider;
            PageManager = pageManager;
            _searchHistoryRepository = searchHistoryRepository;
            HashSet <string> HistoryKeyword = new HashSet <string>();

            foreach (var item in _searchHistoryRepository.ReadAllItems().OrderByDescending(x => x.LastUpdated))
            {
                if (HistoryKeyword.Contains(item.Keyword))
                {
                    continue;
                }

                SearchHistoryItems.Add(new SearchHistoryListItemViewModel(item, this));
                HistoryKeyword.Add(item.Keyword);
            }

            SearchText = new ReactiveProperty <string>(_LastKeyword)
                         .AddTo(_CompositeDisposable);

            TargetListItems = new List <SearchTarget>()
            {
                SearchTarget.Keyword,
                SearchTarget.Tag,
                SearchTarget.Niconama,
            };

            SelectedTarget = new ReactiveProperty <SearchTarget>(_LastSelectedTarget)
                             .AddTo(_CompositeDisposable);

            DoSearchCommand = new ReactiveCommand()
                              .AddTo(_CompositeDisposable);
#if DEBUG
            SearchText.Subscribe(x =>
            {
                Debug.WriteLine($"検索:{x}");
            });
#endif

#if DEBUG
            DoSearchCommand.CanExecuteChangedAsObservable()
            .Subscribe(x =>
            {
                Debug.WriteLine(DoSearchCommand.CanExecute());
            });
#endif



            IsNavigationFailed     = new ReactiveProperty <bool>();
            NavigationFailedReason = new ReactiveProperty <string>();
        }
 public RemoveSearchHistoryCommand(SearchHistoryRepository searchHistoryRepository)
 {
     _searchHistoryRepository = searchHistoryRepository;
 }
Esempio n. 9
0
 public SearchCommand(PageManager pageManager, SearchHistoryRepository searchHistoryRepository)
 {
     _pageManager             = pageManager;
     _searchHistoryRepository = searchHistoryRepository;
 }