Пример #1
0
        protected override Task ListPageNavigatedToAsync(CancellationToken cancelToken, NavigatedToEventArgs e, Dictionary <string, object> viewModelState)
        {
            if (e.Parameter is Guid)
            {
                var feedGroupId = (Guid)e.Parameter;

                FeedGroup = HohoemaApp.FeedManager.GetFeedGroup(feedGroupId);
            }
            else if (e.Parameter is string)
            {
                var feedGroupId = Guid.Parse(e.Parameter as string);

                FeedGroup = HohoemaApp.FeedManager.GetFeedGroup(feedGroupId);
            }

            if (FeedGroup == null)
            {
                // 削除済み?
                PageManager.OpenPage(HohoemaPageType.FeedGroupManage);
            }
            else
            {
                UpdateTitle(FeedGroup.Label);

                LastUpdate.Value = FeedGroup.UpdateTime;

                AllMarkAsReadCommand.RaiseCanExecuteChanged();
            }

            return(Task.CompletedTask);
        }
Пример #2
0
        public FeedVideoListPageViewModel(HohoemaApp hohoemaApp, PageManager pageManager, Views.Service.MylistRegistrationDialogService mylistDialogService)
            : base(hohoemaApp, pageManager, mylistDialogService, isRequireSignIn: true)
        {
            LastUpdate = new ReactiveProperty <DateTime>();

            AllMarkAsReadCommand = new DelegateCommand(async() =>
            {
                FeedGroup.ForceMarkAsRead();

                await HohoemaApp.FeedManager.SaveOne(FeedGroup);

                AllMarkAsReadCommand.RaiseCanExecuteChanged();
            }
                                                       , () =>
            {
                return((FeedGroup?.GetUnreadItemCount() ?? 0) > 0);
            });


            SelectedItemsMarkAsReadCommand = SelectedItems.ToCollectionChanged()
                                             .Select(x => SelectedItems.Count(y => y.IsUnread.Value) > 0)
                                             .ToReactiveCommand(false)
                                             .AddTo(_CompositeDisposable);

            SelectedItemsMarkAsReadCommand.Subscribe(async _ =>
            {
                foreach (var item in SelectedItems)
                {
                    await HohoemaApp.FeedManager.MarkAsRead(item.VideoId);
                    await HohoemaApp.FeedManager.MarkAsRead(item.RawVideoId);
                }

                ClearSelection();
            })
            .AddTo(_CompositeDisposable);

            OpenFeedGroupPageCommand = new DelegateCommand(() =>
            {
                if (FeedGroup != null)
                {
                    PageManager.OpenPage(HohoemaPageType.FeedGroup, FeedGroup.Id);
                }
            });
        }