public async void InitializeLiveRecommend() { using (var releaser = await _UpdateLock.LockAsync()) { if (LiveProgram == null) { return; } if (IsLiveRecommendInitialized) { return; } try { if (NiconicoSession.IsLoggedIn) { _Reservations = await NiconicoSession.ToolkitContext.Timeshift.GetTimeshiftReservationsDetailAsync(); } } catch { } try { LiveRecommendResponse recommendResponse = null; if (LiveProgram?.SocialGroupId.StartsWith("co") ?? false) { recommendResponse = await NiconicoSession.ToolkitContext.Recommend.GetLiveRecommendForUserAsync(LiveProgram.Id, LiveProgram.ProviderId); } else { recommendResponse = await NiconicoSession.ToolkitContext.Recommend.GetLiveRecommendForChannelAsync(LiveProgram.Id, LiveProgram.SocialGroupId); } if (recommendResponse.IsSuccess) { foreach (var recommendItem in recommendResponse.Data.Items) { _ReccomendItems.Add(recommendItem); } } } catch (Exception ex) { Debug.WriteLine(ex.ToString()); } finally { IsLiveRecommendInitialized = true; OnPropertyChanged(nameof(IsLiveRecommendInitialized)); IsEmptyLiveRecommendItems = !_ReccomendItems.Any(); OnPropertyChanged(nameof(IsEmptyLiveRecommendItems)); } } }
public async void InitializeLiveRecommend() { using (var releaser = await _LiveRecommendLock.LockAsync()) { if (LiveInfo == null) { return; } if (IsLiveRecommendInitialized) { return; } try { if (NiconicoSession.IsLoggedIn) { _Reservations = await NiconicoSession.Context.Live.GetReservationsInDetailAsync(); } } catch { } try { LiveRecommendResponse recommendResponse = null; if (LiveInfo.Community?.GlobalId.StartsWith("co") ?? false) { recommendResponse = await NiconicoSession.Context.Live.GetCommunityRecommendAsync(LiveInfo.Video.Id, LiveInfo.Community.GlobalId); } else { recommendResponse = await NiconicoSession.Context.Live.GetOfficialOrChannelLiveRecommendAsync(LiveInfo.Video.Id); } foreach (var recommendItem in recommendResponse.RecommendItems) { _ReccomendItems.Add(recommendItem); } } catch (Exception ex) { Debug.WriteLine(ex.ToString()); } finally { IsLiveRecommendInitialized = true; RaisePropertyChanged(nameof(IsLiveRecommendInitialized)); IsEmptyLiveRecommendItems = !_ReccomendItems.Any(); RaisePropertyChanged(nameof(IsEmptyLiveRecommendItems)); } } }
private void TestLiveRecommend(LiveRecommendResponse res) { Assert.IsTrue(res.IsSuccess, "failed"); Assert.IsNotNull(res.Data, "res.Data is null"); Assert.IsNotNull(res.Data.RecipeId, "res.Data.RecipeId is null"); Assert.IsNotNull(res.Data.RecommendId, "res.Data.RecommendId is null"); Assert.IsNotNull(res.Data.Items, "res.Data.Values is null"); if (res.Data.Items.Any()) { foreach (var item in res.Data.Items.Take(3)) { Assert.IsNotNull(item.Id, "item.Id is null"); Assert.IsNotNull(item.ContentMeta, "item.ContentMeta is null"); Assert.IsNotNull(item.ContentMeta.ContentId, "item.ContentMeta.ContentId is null"); Assert.IsNotNull(item.ContentMeta.Title, "item.ContentMeta.Title is null"); } } }