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));
                }
            }
        }
Esempio n. 3
0
        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");
                }
            }
        }