internal static void SetSeasonProperties(TraktShowSummary show, TraktSeasonSummary season)
 {
     SetProperty("#Trakt.Season.TmdbId", season.Ids.Tmdb);
     SetProperty("#Trakt.Season.TvdbId", season.Ids.Tvdb);
     SetProperty("#Trakt.Season.TvRageId", season.Ids.TvRage);
     SetProperty("#Trakt.Season.Number", season.Number);
     SetProperty("#Trakt.Season.Url", string.Format("http://trakt.tv/shows/{0}/seasons/{1}", show.Ids.Slug, season.Number));
     //SetProperty("#Trakt.Season.PosterImageFilename", season.Images == null ? string.Empty : season.Images.Poster.LocalImageFilename(ArtworkType.SeasonPoster));
     SetProperty("#Trakt.Season.EpisodeCount", season.EpisodeCount);
     SetProperty("#Trakt.Season.EpisodeAiredCount", season.EpisodeAiredCount);
     SetProperty("#Trakt.Season.Overview", season.Overview ?? show.Overview);
     SetProperty("#Trakt.Season.Watched", season.IsWatched(show));
     SetProperty("#Trakt.Season.Plays", season.Plays(show));
     SetProperty("#Trakt.Season.InCollection", season.IsCollected(show));
     SetProperty("#Trakt.Season.InWatchList", season.IsWatchlisted(show));
     SetProperty("#Trakt.Season.Collected", season.Collected(show));
     SetProperty("#Trakt.Season.Rating", season.UserRating(show));
     SetProperty("#Trakt.Season.Ratings.Percentage", season.Rating.ToPercentage());
     SetProperty("#Trakt.Season.Ratings.Votes", season.Votes);
     SetProperty("#Trakt.Season.Ratings.Icon", (season.Rating >= 6) ? "love" : "hate");
 }
        internal static bool RateSeason(TraktShowSummary show, TraktSeasonSummary season)
        {
            var rateObject = new TraktSyncSeasonRatedEx
            {
                Ids = show.Ids,
                Title = show.Title,
                Year = show.Year,
                Seasons = new List<TraktSyncSeasonRatedEx.Season>
                {
                    new TraktSyncSeasonRatedEx.Season
                    {
                        Number = season.Number,
                        RatedAt = DateTime.UtcNow.ToISO8601()
                    }
                }
            };

            int? prevRating = season.UserRating(show);
            int newRating = 0;

            newRating = GUIUtils.ShowRateDialog<TraktSyncSeasonRatedEx>(rateObject);
            if (newRating == -1) return false;

            // If previous rating not equal to current rating then
            // update skin properties to reflect changes
            if (prevRating == newRating)
                return false;

            if (prevRating == null || prevRating == 0)
            {
                // add to ratings
                TraktCache.AddSeasonToRatings(show, season, newRating);
                season.Votes++;
            }
            else if (newRating == 0)
            {
                // remove from ratings
                TraktCache.RemoveSeasonFromRatings(show, season);
                season.Votes--;
            }
            else
            {
                // rating changed, remove then add
                TraktCache.RemoveSeasonFromRatings(show, season);
                TraktCache.AddSeasonToRatings(show, season, newRating);
            }

            // update ratings until next online update
            // if we have the ratings distribution we could calculate correctly
            if (season.Votes == 0)
            {
                season.Rating = 0;
            }
            else if (season.Votes == 1 && newRating > 0)
            {
                season.Rating = newRating;
            }

            return true;
        }
 public static void ShowTVSeasonShouts(TraktShowSummary show, TraktSeasonSummary season)
 {
     var showImages = TmdbCache.GetShowImages(show.Ids.Tmdb, true);
     ShowTVSeasonShouts(show.Title, show.Year, show.Ids.Tvdb, show.Ids.Trakt, show.Ids.Imdb, season.Number, season.IsWatched(show), TmdbCache.GetShowBackdropFilename(showImages), TmdbCache.GetShowBackdropUrl(showImages));
 }
 private void PublishSeasonSkinProperties(TraktSeasonSummary season)
 {
     GUICommon.SetSeasonProperties(Show, season);
 }
        private bool GetLoadingParameter()
        {
            if (_loadParameter == null)
            {
                // maybe re-loading, so check previous window id
                if (Show != null && Show.Ids.Trakt != null && Season != null)
                    return true;

                return false;
            }

            var loadingParam = _loadParameter.FromJSON<SeasonLoadingParameter>();
            if (loadingParam == null) return false;

            // reset previous selected index
            if (Show != null && Season != null)
            {
                if (Show.Title != loadingParam.Show.Title || Season.Number != loadingParam.Season.Number)
                    PreviousSelectedIndex = 0;
            }

            Show = loadingParam.Show;
            Season = loadingParam.Season;
            if (Show == null || Show.Ids.Trakt == null || Season == null)
                return false;

            return true;
        }