public async Task CreateTVShowToTVShowGenreRelationship(TVShow tvShow, TVShowGenre tvShowGenre)
        {
            var relation = Relation.Instanciate(TVShow.ENTITY_CATEGORY_ID, tvShow.GetId(),
                                                TVShowGenre.ENTITY_CATEGORY_ID, tvShowGenre.GetId(), Relation.RELATION_STATUS_ACTIVE_ID,
                                                DateTime.Now);

            await Save(relation);
        }
        public static async Task PopulateTmdbTVShowGenres(TVShowGenreRepository tvGenreRepository)
        {
            var genres = new List <TVShowGenre>();

            try
            {
                const string myUrl = "https://api.themoviedb.org/3/genre/tv/list?api_key=661b76973b90b91e0df214904015fd4d";

                var client = new HttpClient();
                var data   = await client.GetStringAsync(myUrl);

                var o = JObject.Parse(data);

                var genreJArray = (JArray)o["genres"];

                genres.AddRange(genreJArray.Select(item => TVShowGenre.InstanciateTmdbGenreTVShow(
                                                       item["name"] + "", (int)item["id"])));
            }
            catch (Exception e)
            {
                Console.WriteLine("My error is " + e);
            }

            if (genres.Count > 0)
            {
                var tmdbGenres = await tvGenreRepository.GetAllGenresBySource(Category.SOURCE_TMDB);

                foreach (var tvShowGenre in genres)
                {
                    if (tmdbGenres == null || (!tmdbGenres.Any(c => c.Source.Equals(tvShowGenre.Source) && c.SourceId == tvShowGenre.SourceId)))
                    {
                        var error = await tvGenreRepository.Save(tvShowGenre);

                        if (error.ErrorCode == BaseError.Success)
                        {
                            Console.WriteLine("Created missing movie genre " + tvShowGenre.SourceName);
                        }
                        else
                        {
                            Console.WriteLine("An Error occured creating genre " + tvShowGenre.SourceName);
                        }
                    }
                }
            }
        }
        public ActionResult AddGenre(string Title, string Genre)
        {
            var TVitem    = _repository.GetTVShowByTitle(Title);
            var genreItem = _genre.GetGenreEntityByGenre(Genre);

            if (genreItem == null || TVitem == null)
            {
                throw new System.Exception("Genre or TVShow doesn't exist.");
            }
            var toAdd = new TVShowGenre()
            {
                TVShowId = TVitem.TVShowId, GenreId = genreItem.GenreId
            };

            _tvgenres.Add(toAdd);
            TVitem.TVShowGenre.Add(toAdd);
            if (!_repository.Save())
            {
                throw new System.Exception("Failed on save.");
            }
            return(Ok(TVitem));
        }
 public void Add(TVShowGenre item)
 {
     _context.TVShowGenreItems.Add(item);
 }