Ejemplo n.º 1
0
        public async Task <SeriesChanges> HandleSeriesChanges(List <TmdbChange> tmdbChanges)
        {
            var seriesChanges = new SeriesChanges();

            foreach (var tmdbChange in tmdbChanges)
            {
                var changeItemEnglish = tmdbChange.items.FirstOrDefault(i => i.iso_639_1 == "en");
                var changeItemSingle  = tmdbChange.items.SingleOrDefault();

                switch (tmdbChange.key)
                {
                case "overview":
                    if (changeItemEnglish != null)
                    {
                        seriesChanges.Overview = new Change <string>(changeItemEnglish.action, changeItemEnglish.ValueAs <string>());
                    }
                    break;

                case "images":
                    if (changeItemEnglish != null)
                    {
                        seriesChanges.PosterUriPostfix = new Change <string>(changeItemEnglish.action, changeItemEnglish.ValueAs <PosterChangeValue>().poster.file_path);
                    }
                    break;

                case "season":
                    foreach (var seasonChange in tmdbChange.items)
                    {
                        var seasonTmdbId  = seasonChange.ValueAs <SeasonChangeValue>().season_id;
                        var seasonChanges = await TmdbService.GetSeasonChanges(seasonTmdbId);

                        if (seasonChanges.Any())
                        {
                            var changes = await HandleSeasonChanges(seasonChanges);

                            seriesChanges.SeasonChanges.Add(new Change <SeasonChanges>(seasonChange.action, changes));
                        }
                    }

                    break;

                case "translations":
                case "certifications":
                    break;

                default:
                    Log.Warn($"Series - {tmdbChange.key} - {JsonConvert.SerializeObject( tmdbChange.items.FirstOrDefault() )}");
                    break;
                }
            }

            return(seriesChanges);
        }
Ejemplo n.º 2
0
        public async Task UpdateTvShow(SeriesChanges tvShow, Token token)
        {
            using (var client = new HttpClient {
                BaseAddress = this.mySeriesApiBaseAddress, Timeout = new TimeSpan(0, 15, 0)
            })
            {
                client.DefaultRequestHeaders.Add("Authorization", $"{token.TokenType} {token.AccessToken}");

                var response = await client.PutAsJsonAsync("/api/TvShows", tvShow);

                if (!response.IsSuccessStatusCode)
                {
                    if (response.Content != null)
                    {
                        throw new Exception($"Server error {response.StatusCode} - {await response.Content.ReadAsStringAsync()}");
                    }
                    throw new Exception($"Server error {response.StatusCode}");
                }
            }
        }