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); }
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); } }); }