private async Task RefreshPlaylistItems() { await _dispatcherQueue.EnqueueAsync(async() => { NowLoading.Value = true; try { using (ItemsView.DeferRefresh()) { _sourcePlaylistItems.Clear(); // TODO: タイムアウト処理を追加する using var _ = await _niconicoSession.SigninLock.LockAsync(); await _userMylistManager.WaitUpdate(); foreach (var item in _userMylistManager.Mylists.Where(x => x.MylistId.IsWatchAfterMylist is false)) { _sourcePlaylistItems.Add(item); } } } finally { NowLoading.Value = false; } AddMylistGroupCommand.NotifyCanExecuteChanged(); }); }
protected override async Task NavigatedToAsync(CancellationToken cancelToken, NavigatedToEventArgs e, Dictionary <string, object> viewModelState) { if (e.Parameter is string) { UserId = e.Parameter as string; } if (e.Parameter == null || NiconicoSession.IsLoginUserId(UserId)) { IsLoginUserMylist.Value = true; // ログインユーザーのマイリスト一覧を表示 UserName = NiconicoSession.UserName; } else if (UserId != null) { try { var userInfo = await UserProvider.GetUser(UserId); UserName = userInfo.ScreenName; } catch (Exception ex) { System.Diagnostics.Debug.WriteLine(ex.Message); } } else { throw new Exception("UserMylistPage が不明なパラメータと共に開かれました : " + e.Parameter); } PageManager.PageTitle = UserName; AddMylistGroupCommand.RaiseCanExecuteChanged(); await base.NavigatedToAsync(cancelToken, e, viewModelState); }
public override async Task OnNavigatedToAsync(INavigationParameters parameters) { if (parameters.TryGetValue <string>("id", out string userId)) { UserId = userId; } if ((UserId == null && NiconicoSession.IsLoggedIn) || NiconicoSession.IsLoginUserId(UserId)) { IsLoginUserMylist.Value = true; // ログインユーザーのマイリスト一覧を表示 UserName = NiconicoSession.UserName; } else if (UserId != null) { try { var userInfo = await UserProvider.GetUser(UserId); UserName = userInfo.ScreenName; } catch (Exception ex) { System.Diagnostics.Debug.WriteLine(ex.Message); } } else { throw new Exception("UserMylistPage が不明なパラメータと共に開かれました : " + parameters.ToString()); } PageManager.PageTitle = UserName; AddMylistGroupCommand.RaiseCanExecuteChanged(); await base.OnNavigatedToAsync(parameters); }
protected override async Task NavigatedToAsync(CancellationToken cancelToken, NavigatedToEventArgs e, Dictionary <string, object> viewModelState) { List <IPlayableList> mylists = null; if (e.Parameter is string) { UserId = e.Parameter as string; } MylistList.Clear(); IsLoginUserMylist.Value = UserId == null || UserId == HohoemaApp.LoginUserId.ToString(); if (!IsLoginUserMylist.Value && UserId != null) { try { var userInfo = await HohoemaApp.ContentFinder.GetUserInfo(UserId); UserName = userInfo.Nickname; } catch (Exception ex) { System.Diagnostics.Debug.WriteLine(ex.Message); } try { var items = await OtherOwneredMylistManager.GetByUserId(UserId); mylists = items.Cast <IPlayableList>().ToList(); } catch (Exception ex) { System.Diagnostics.Debug.WriteLine(ex.Message); } MylistList.Add(new MylistItemsWithTitle() { Title = "マイリスト", Origin = PlaylistOrigin.OtherUser, Items = mylists.ToList(), }); OnPropertyChanged(nameof(MylistList)); } else if (IsLoginUserMylist.Value) { // ログインユーザーのマイリスト一覧を表示 UserName = HohoemaApp.LoginUserName; await UpdateUserMylist(); } else { throw new Exception("UserMylistPage が不明なパラメータと共に開かれました : " + e.Parameter); } UpdateTitle($"{UserName} さんのマイリスト一覧"); AddMylistGroupCommand.RaiseCanExecuteChanged(); }