public override async Task OnNavigatedToAsync(INavigationParameters parameters) { if (parameters.TryGetValue("id", out string id)) { RawChannelId = id; try { var channelInfo = await ChannelProvider.GetChannelInfo(RawChannelId); ChannelId = channelInfo.ChannelId; ChannelName = channelInfo.Name; ChannelScreenName = channelInfo.ScreenName; ChannelOpenTime = channelInfo.ParseOpenTime(); ChannelUpdateTime = channelInfo.ParseUpdateTime(); } catch { ChannelName = RawChannelId; } FollowToggleButtonService.SetFollowTarget(this); } await base.OnNavigatedToAsync(parameters); }
private async Task <Tuple <string, string> > ResolveSubscriptionSourceLabel(SubscriptionSource source) { switch (source.SourceType) { case SubscriptionSourceType.User: var info = await UserProvider.GetUser(source.Parameter); return(new Tuple <string, string>(info.ScreenName, null)); case SubscriptionSourceType.Channel: var channelInfo = await ChannelProvider.GetChannelInfo(source.Parameter); return(new Tuple <string, string>(channelInfo.Name, null)); case SubscriptionSourceType.Mylist: var mylistInfo = await MylistProvider.GetMylistGroupDetail(source.Parameter); var mylistOwner = await UserProvider.GetUser(mylistInfo.MylistGroup.UserId); return(new Tuple <string, string>(mylistInfo.MylistGroup.Name, mylistOwner.ScreenName)); case SubscriptionSourceType.TagSearch: return(new Tuple <string, string>(source.Parameter, null)); case SubscriptionSourceType.KeywordSearch: return(new Tuple <string, string>(source.Parameter, null)); default: break; } return(null); }
protected override async Task NavigatedToAsync(CancellationToken cancelToken, NavigatedToEventArgs e, Dictionary <string, object> viewModelState) { if (e.Parameter is string) { RawChannelId = e.Parameter as string; } if (RawChannelId == null) { return; } try { var channelInfo = await ChannelProvider.GetChannelInfo(RawChannelId); ChannelId = channelInfo.ChannelId; ChannelName = channelInfo.Name; ChannelScreenName = channelInfo.ScreenName; ChannelOpenTime = channelInfo.ParseOpenTime(); ChannelUpdateTime = channelInfo.ParseUpdateTime(); } catch { ChannelName = RawChannelId; } FollowToggleButtonService.SetFollowTarget(this); PageManager.PageTitle = ChannelName; await base.NavigatedToAsync(cancelToken, e, viewModelState); }
protected override async void Execute(object parameter) { if (parameter is Interfaces.IVideoContent) { var content = parameter as Interfaces.IVideoContent; string ownerName = null; if (string.IsNullOrEmpty(ownerName)) { if (content.ProviderType == NicoVideoUserType.User) { try { var userInfo = await UserProvider.GetUser(content.ProviderId); ownerName = userInfo.ScreenName; } catch { return; } } else if (content.ProviderType == NicoVideoUserType.Channel) { var channelInfo = await ChannelProvider.GetChannelInfo(content.ProviderId); ownerName = channelInfo.Name; var channel = Database.NicoVideoOwnerDb.Get(content.ProviderId) ?? new Database.NicoVideoOwner() { OwnerId = channelInfo.ChannelId.ToString(), UserType = NicoVideoUserType.Channel, }; channel.ScreenName = channelInfo.ScreenName ?? channel.ScreenName; Database.NicoVideoOwnerDb.AddOrUpdate(channel); } } NgSettings.AddNGVideoOwnerId(content.ProviderId.ToString(), ownerName); } }
protected override async void Execute(object parameter) { if (parameter is Interfaces.IVideoContent) { var content = parameter as Interfaces.IVideoContent; var ownerName = content.ProviderName; if (string.IsNullOrEmpty(ownerName)) { if (content.ProviderType == Mntone.Nico2.Videos.Thumbnail.UserType.User) { try { var userInfo = await UserProvider.GetUser(content.ProviderId); ownerName = userInfo.ScreenName; } catch { return; } } else if (content.ProviderType == Mntone.Nico2.Videos.Thumbnail.UserType.Channel) { var channelInfo = await ChannelProvider.GetChannelInfo(content.ProviderId); ownerName = channelInfo.Name; var channel = Database.NicoVideoOwnerDb.Get(content.ProviderId) ?? new Database.NicoVideoOwner() { OwnerId = channelInfo.ChannelId.ToString(), UserType = Mntone.Nico2.Videos.Thumbnail.UserType.Channel, }; channel.ScreenName = channelInfo.ScreenName ?? channel.ScreenName; Database.NicoVideoOwnerDb.AddOrUpdate(channel); } } var dialog = new MessageDialog( $"この変更は投稿者({ownerName} さん)のアプリ内ユーザー情報ページから取り消すことができます。", $"『{ownerName}』さんの投稿動画を非表示にしますか?" ); dialog.Commands.Add(new UICommand() { Label = "非表示に設定", Invoked = (uicommand) => { NgSettings.AddNGVideoOwnerId(content.ProviderId.ToString(), ownerName); } }); dialog.Commands.Add(new UICommand() { Label = "キャンセル" }); dialog.DefaultCommandIndex = 0; await dialog.ShowAsync(); } }
public async ValueTask <IPlaylist> Create(PlaylistId playlistId) { var info = await _channelProvider.GetChannelInfo(playlistId.Id); return(new ChannelVideoPlaylist(info.ChannelId, playlistId, info.Name, _channelProvider)); }