Example #1
0
        public async Task <int> ResetSource()
        {
            int totalCount = 0;

            try
            {
                var res = await GetLiveSearchResponseOnCurrentOption(0, 30);

                if (res.VideoInfo != null)
                {
                    foreach (var v in res.VideoInfo)
                    {
                        AddLive(v);
                    }
                }

                Tags       = res.Tags?.Tag.ToList();
                totalCount = res.TotalCount.FilteredCount;
            }
            catch { }

            try
            {
                // ログインしてない場合はタイムシフト予約は取れない
                if (NiconicoSession.IsLoggedIn)
                {
                    _Reservations = await NiconicoSession.Context.Live.GetReservationsInDetailAsync();
                }
            }
            catch { }

            return(totalCount);
        }
        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));
                }
            }
        }