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