示例#1
0
        public void RemoveBlackList(BlackListShow blackListShow)
        {
            var toRemove = context.BlackListShow.SingleOrDefault(b => b.Id == blackListShow.Id);

            if (toRemove != null)
            {
                context.BlackListShow.Remove(toRemove);
                context.SaveChanges();
            }
        }
示例#2
0
        public void AddBlackList(BlackListShow blackListShow)
        {
            var exist = context.BlackListShow.Any(b => b.TraktShowId == blackListShow.TraktShowId && b.Season == blackListShow.Season && b.Entire == blackListShow.Entire);

            if (!exist)
            {
                context.BlackListShow.Add(new BlackListShowSqLite(blackListShow));
                context.SaveChanges();
            }
        }
示例#3
0
        private async Task RefreshHiddenItem()
        {
            var hiddenShow = await Client.Users.GetHiddenItemsAsync(TraktHiddenItemsSection.ProgressCollected, TraktHiddenItemType.Show).ConfigureAwait(false);

            TraktPagedResponse <ITraktUserHiddenItem> watchedRes = hiddenShow;

            foreach (ITraktUserHiddenItem traktUserHiddenItem in watchedRes)
            {
                var traktShow = traktUserHiddenItem.Show;

                // Store hidden season
                var show = new BlackListShow
                {
                    TraktShowId = traktShow.Ids.Trakt,
                    Entire      = true,
                    SerieName   = traktShow.Title
                };
                Database.AddBlackList(show);
            }
        }
示例#4
0
 public void RemoveBlackList(BlackListShow blackListShow)
 {
     BlackLists.Remove(blackListShow);
 }
示例#5
0
 public void AddBlackList(BlackListShow blackListShow)
 {
     BlackLists.Add(blackListShow);
 }
示例#6
0
        private async Task HandleProgress(TraktShow traktShow, List <BlackListShow> blackList)
        {
            // Remove Season blacklist
            traktShow.Seasons.RemoveAll(s => blackList.Any(b => b.TraktShowId == traktShow.Id && b.Season == s.Season));

            if (traktShow.Seasons.Any())
            {
                var collectionProgress =
                    await Client.Shows.GetShowCollectionProgressAsync(traktShow.Id.ToString(), false, false, false).ConfigureAwait(false);

                var collectionProgressRes = collectionProgress;

                foreach (ITraktSeasonCollectionProgress season in collectionProgressRes.Value.Seasons)
                {
                    var misSeason = traktShow.Seasons.SingleOrDefault(e => e.Season == season.Number);
                    if (misSeason == null)
                    {
                        misSeason = new TraktSeason {
                            Season = season.Number
                        };
                        traktShow.Seasons.Add(misSeason);
                    }

                    foreach (ITraktEpisodeCollectionProgress episode in season.Episodes.Where(e =>
                                                                                              !e.Completed.HasValue || !e.Completed.Value))
                    {
                        // Already existing in missing
                        if (misSeason.MissingEpisodes.All(m => m.Episode != episode.Number))
                        {
                            misSeason.MissingEpisodes.Add(new MissingEpisode {
                                Episode = episode.Number
                            });
                        }
                    }
                }

                foreach (ITraktSeason season in collectionProgressRes.Value.HiddenSeasons)
                {
                    TraktSeason traktSeason = traktShow.Seasons.SingleOrDefault(e => e.Season == season.Number);
                    if (traktSeason != null)
                    {
                        // Store hidden season
                        var show = new BlackListShow
                        {
                            TraktShowId = traktShow.Id,
                            Season      = season.Number,
                            SerieName   = traktShow.SerieName
                        };
                        Database.AddBlackList(show);

                        traktSeason.Hidden = true;
                    }
                }

                foreach (var showSeason in traktShow.Seasons)
                {
                    // Remove watched from missing
                    showSeason.MissingEpisodes.RemoveAll(m => m.Watched);

                    // Remove collected from missing
                    showSeason.MissingEpisodes.RemoveAll(m => m.Collected);

                    // BlackList Ended series if complete
                    if ((traktShow.Status == TraktShowStatus.Ended || traktShow.Status == TraktShowStatus.Canceled) && !showSeason.MissingEpisodes.Any())
                    {
                        // Store hidden season
                        var show = new BlackListShow
                        {
                            TraktShowId = traktShow.Id,
                            Season      = showSeason.Season,
                            SerieName   = traktShow.SerieName
                        };
                        Database.AddBlackList(show);
                    }
                }

                traktShow.Seasons.RemoveAll(s => s.Hidden);

                traktShow.Seasons.RemoveAll(s => !s.MissingEpisodes.Any());
            }
        }