コード例 #1
0
        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();
            });
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        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();
        }