Ejemplo n.º 1
0
 public UserVideoIncrementalSource(
     string userId,
     UserDetail userDetail,
     UserProvider userProvider,
     UserVideoPlaylist userVideoPlaylist,
     UserVideoPlaylistSortOption selectedSortOption,
     ILogger logger
     )
 {
     UserId              = uint.Parse(userId);
     User                = userDetail;
     UserProvider        = userProvider;
     _userVideoPlaylist  = userVideoPlaylist;
     _selectedSortOption = selectedSortOption;
     _logger             = logger;
 }
Ejemplo n.º 2
0
        public override async Task OnNavigatedToAsync(INavigationParameters parameters)
        {
            UserId?userId = null;

            if (parameters.TryGetValue("id", out string id))
            {
                userId = id;
            }
            else if (parameters.TryGetValue("id", out UserId justUserId))
            {
                userId = justUserId;
            }

            if (userId is null || userId == UserId)
            {
                UserId         = null;
                UserInfo.Value = null;
                UserName       = null;
                return;
            }

            UserId = userId;

            var res = await UserProvider.GetUserDetailAsync(UserId.Value);

            if (res.IsSuccess)
            {
                User = res.Data.User;

                UserInfo.Value = new UserInfoViewModel(User.Nickname, User.Id.ToString(), User.Icons.Small.OriginalString);
                UserName       = User.Nickname;


                UserVideoPlaylist = new UserVideoPlaylist(User.Id, new PlaylistId()
                {
                    Id = User.Id, Origin = PlaylistItemsSourceOrigin.UserVideos
                }, User.Nickname, UserProvider);
                SelectedSortOption = UserVideoPlaylist.DefaultSortOption;

                this.ObserveProperty(x => x.SelectedSortOption)
                .Where(x => x is not null)
                .Subscribe(_ => ResetList())
                .AddTo(_navigationDisposables);
            }

            await base.OnNavigatedToAsync(parameters);
        }