public static void FilterCollections(TMDBSnapshot tmdbSnapshot, ILogger logger) { logger.LogInformation($"TMDBDataCollector filtering collections started at: {DateTime.Now}"); if (tmdbSnapshot != null) { FilterCollection(tmdbSnapshot.PopularShowsAndMovies); FilterCollection(tmdbSnapshot.ComedyShowsAndMovies); FilterCollection(tmdbSnapshot.DramaShowsAndMovies); FilterCollection(tmdbSnapshot.ActionAdventureShowsAndMovies); FilterCollection(tmdbSnapshot.AnimationShowsAndMovies); FilterCollection(tmdbSnapshot.ScifiShowsAndMovies); FilterCollection(tmdbSnapshot.CrimeShowsAndMovies); FilterCollection(tmdbSnapshot.MysteryShowsAndMovies); FilterCollection(tmdbSnapshot.ThrillerShowsAndMovies); FilterCollection(tmdbSnapshot.HorrorShowsAndMovies); FilterCollection(tmdbSnapshot.FamilyShowsAndMovies); FilterCollection(tmdbSnapshot.KidsShowsAndMovies); FilterCollection(tmdbSnapshot.WesternShowsAndMovies); FilterCollection(tmdbSnapshot.FantasyMovies); FilterCollection(tmdbSnapshot.HistoryShowsAndMovies); FilterCollection(tmdbSnapshot.RomanceShowsAndMovies); FilterCollection(tmdbSnapshot.WarShowsAndMovies); FilterCollection(tmdbSnapshot.DocumentaryShowsAndMovies); FilterCollection(tmdbSnapshot.SitcomShows); FilterCollection(tmdbSnapshot.AnthologyShows); FilterCollection(tmdbSnapshot.AnimeShowsAndMovies); FilterCollection(tmdbSnapshot.TeenDramaShowsAndMovies); FilterCollection(tmdbSnapshot.HistoricalDramaShowsAndMovies); FilterCollection(tmdbSnapshot.WorkplaceComedyShowsAndMovies); FilterCollection(tmdbSnapshot.MedicalDramaShowsAndMovies); } logger.LogInformation($"TMDBDataCollector filtering collections finished at: {DateTime.Now}"); }
private static void WriteIntoDatabase(TMDBSnapshot tmdbSnapshot, ILogger logger) { logger.LogInformation($"TMDBDataCollector writing data into database started at: {DateTime.Now}"); using IDatabaseService databaseService = new DatabaseServiceImpl(_databaseConnection); databaseService.SaveCollectedDataToDatabase(tmdbSnapshot); logger.LogInformation($"TMDBDataCollector writing data into database finished at: {DateTime.Now}"); }
public static async Task Run([TimerTrigger("0 0 */4 * * *" /* runs every fourth hour */ #if DEBUG , RunOnStartup = true #endif )] TimerInfo myTimer, ILogger log) { _tmdbApiKey = Environment.GetEnvironmentVariable("tmdb_api_key"); _databaseConnection = Environment.GetEnvironmentVariable("database_connection"); _tmdbService = new TMDBServiceImpl(_tmdbApiKey, log); log.LogInformation($"TMDBDataCollector function started at: {DateTime.Now}"); List <LocalizationCodes> localizationCodes = GetLocalizationCodes(log); await _tmdbService.InitializeAsync(); if (localizationCodes != null) { foreach (LocalizationCodes entry in localizationCodes) { _tmdbService.Clear(); _tmdbSnapshot = await DataCollector.CollectDataAsync(_tmdbService, log, entry.LanguageCode, entry.RegionCode); WriteIntoDatabase(_tmdbSnapshot, log); } } log.LogInformation($"TMDBDataCollector function finished at: {DateTime.Now}"); }
private static void CreateRandomizedJSONCollection(TMDBSnapshot tmdbSnapshot, ILogger logger) { logger.LogInformation($"DataCollector creating json collection started at: {DateTime.Now}"); RandomizedJSONSnapshot jsonSnapshot = CreateRandomizedCollection(tmdbSnapshot); string json = JsonConvert.SerializeObject(jsonSnapshot); var compressionService = new CompressionServiceImpl(); string compressedJsonData = compressionService.CompressJSONAsBase64(json); tmdbSnapshot.CompressedBase64JSONData = compressedJsonData; logger.LogInformation($"DataCollector creating json collection finished at: {DateTime.Now}"); }
public void SaveCollectedDataToDatabase(TMDBSnapshot tmdbSnapshot) { var snapshot = new Snapshots { LanguageCode = tmdbSnapshot.LanguageCode, RegionCode = tmdbSnapshot.RegionCode, CompressedBase64JSONData = tmdbSnapshot.CompressedBase64JSONData }; _context.Snapshots.Add(snapshot); _context.SaveChanges(); }
private static RandomizedJSONSnapshot CreateRandomizedCollection(TMDBSnapshot tmdbSnapshot) { var jsonSnapshot = new RandomizedJSONSnapshot { Configuration = tmdbSnapshot.Configuration, ShowGenres = tmdbSnapshot.ShowGenres, MovieGenres = tmdbSnapshot.MovieGenres, ActionAdventureShowsAndMovies = tmdbSnapshot.ActionAdventureShowsAndMovies, AnimationShowsAndMovies = tmdbSnapshot.AnimationShowsAndMovies, AnimeShowsAndMovies = tmdbSnapshot.AnimeShowsAndMovies, AnthologyShows = tmdbSnapshot.AnthologyShows, ComedyShowsAndMovies = tmdbSnapshot.ComedyShowsAndMovies, CrimeShowsAndMovies = tmdbSnapshot.CrimeShowsAndMovies, DocumentaryShowsAndMovies = tmdbSnapshot.DocumentaryShowsAndMovies, DramaShowsAndMovies = tmdbSnapshot.DramaShowsAndMovies, FamilyShowsAndMovies = tmdbSnapshot.FamilyShowsAndMovies, FantasyMovies = tmdbSnapshot.FantasyMovies, HistoricalDramaShowsAndMovies = tmdbSnapshot.HistoricalDramaShowsAndMovies, HistoryShowsAndMovies = tmdbSnapshot.HistoryShowsAndMovies, HorrorShowsAndMovies = tmdbSnapshot.HorrorShowsAndMovies, KidsShowsAndMovies = tmdbSnapshot.KidsShowsAndMovies, MedicalDramaShowsAndMovies = tmdbSnapshot.MedicalDramaShowsAndMovies, MysteryShowsAndMovies = tmdbSnapshot.MysteryShowsAndMovies, RomanceShowsAndMovies = tmdbSnapshot.RomanceShowsAndMovies, ScifiShowsAndMovies = tmdbSnapshot.ScifiShowsAndMovies, SitcomShows = tmdbSnapshot.SitcomShows, TeenDramaShowsAndMovies = tmdbSnapshot.TeenDramaShowsAndMovies, ThrillerShowsAndMovies = tmdbSnapshot.ThrillerShowsAndMovies, PopularShowsAndMovies = tmdbSnapshot.PopularShowsAndMovies, WarShowsAndMovies = tmdbSnapshot.WarShowsAndMovies, WesternShowsAndMovies = tmdbSnapshot.WesternShowsAndMovies, WorkplaceComedyShowsAndMovies = tmdbSnapshot.WorkplaceComedyShowsAndMovies }; jsonSnapshot.ActionAdventureShowsAndMovies.Shuffle(); jsonSnapshot.AnimationShowsAndMovies.Shuffle(); jsonSnapshot.AnimeShowsAndMovies.Shuffle(); jsonSnapshot.AnthologyShows.Shuffle(); jsonSnapshot.ComedyShowsAndMovies.Shuffle(); jsonSnapshot.CrimeShowsAndMovies.Shuffle(); jsonSnapshot.DocumentaryShowsAndMovies.Shuffle(); jsonSnapshot.DramaShowsAndMovies.Shuffle(); jsonSnapshot.FamilyShowsAndMovies.Shuffle(); jsonSnapshot.FantasyMovies.Shuffle(); jsonSnapshot.HistoricalDramaShowsAndMovies.Shuffle(); jsonSnapshot.HistoryShowsAndMovies.Shuffle(); jsonSnapshot.HorrorShowsAndMovies.Shuffle(); jsonSnapshot.KidsShowsAndMovies.Shuffle(); jsonSnapshot.MedicalDramaShowsAndMovies.Shuffle(); jsonSnapshot.MysteryShowsAndMovies.Shuffle(); jsonSnapshot.RomanceShowsAndMovies.Shuffle(); jsonSnapshot.ScifiShowsAndMovies.Shuffle(); jsonSnapshot.SitcomShows.Shuffle(); jsonSnapshot.TeenDramaShowsAndMovies.Shuffle(); jsonSnapshot.ThrillerShowsAndMovies.Shuffle(); jsonSnapshot.PopularShowsAndMovies.Shuffle(); jsonSnapshot.WarShowsAndMovies.Shuffle(); jsonSnapshot.WesternShowsAndMovies.Shuffle(); jsonSnapshot.WorkplaceComedyShowsAndMovies.Shuffle(); return(jsonSnapshot); }
public static async Task <TMDBSnapshot> CollectDataAsync(ITMDBService tmdbService, ILogger logger, string languageCode, string regionCode) { logger.LogInformation($"DataCollector collecting data for language \"{languageCode}\" started at: {DateTime.Now}"); var tmdbSnapshot = new TMDBSnapshot { LanguageCode = languageCode, RegionCode = regionCode }; tmdbSnapshot.Configuration = tmdbService.Configuration; tmdbSnapshot.ShowGenres = (await tmdbService.GetShowGenresAsync(languageCode)).Values.ToList(); tmdbSnapshot.MovieGenres = (await tmdbService.GetMovieGenresAsync(languageCode)).Values.ToList(); tmdbSnapshot.PopularShowsAndMovies = await tmdbService.GetPopularShowsAndMoviesAsync(languageCode, regionCode, NUMBER_OF_PAGES); tmdbSnapshot.ComedyShowsAndMovies = await tmdbService.GetComedyShowsAndMoviesAsync(languageCode, regionCode, NUMBER_OF_PAGES); tmdbSnapshot.DramaShowsAndMovies = await tmdbService.GetDramaShowsAndMoviesAsync(languageCode, regionCode, NUMBER_OF_PAGES); tmdbSnapshot.ActionAdventureShowsAndMovies = await tmdbService.GetActionAndAdventureShowsAndMoviesAsync(languageCode, regionCode, NUMBER_OF_PAGES); tmdbSnapshot.AnimationShowsAndMovies = await tmdbService.GetAnimationShowsAndMoviesAsync(languageCode, regionCode, NUMBER_OF_PAGES); tmdbSnapshot.ScifiShowsAndMovies = await tmdbService.GetScifiShowsAndMoviesAsync(languageCode, regionCode, NUMBER_OF_PAGES); tmdbSnapshot.CrimeShowsAndMovies = await tmdbService.GetCrimeShowsAndMoviesAsync(languageCode, regionCode, NUMBER_OF_PAGES); tmdbSnapshot.MysteryShowsAndMovies = await tmdbService.GetMysteryShowsAndMoviesAsync(languageCode, regionCode, NUMBER_OF_PAGES); tmdbSnapshot.ThrillerShowsAndMovies = await tmdbService.GetThrillerShowsAndMoviesAsync(languageCode, regionCode, NUMBER_OF_PAGES); tmdbSnapshot.HorrorShowsAndMovies = await tmdbService.GetHorrorShowsAndMoviesAsync(languageCode, regionCode, NUMBER_OF_PAGES); tmdbSnapshot.FamilyShowsAndMovies = await tmdbService.GetFamilyShowsAndMoviesAsync(languageCode, regionCode, NUMBER_OF_PAGES); tmdbSnapshot.KidsShowsAndMovies = await tmdbService.GetKidsShowsAndMoviesAsync(languageCode, regionCode, NUMBER_OF_PAGES); tmdbSnapshot.WesternShowsAndMovies = await tmdbService.GetWesternShowsAndMoviesAsync(languageCode, regionCode, NUMBER_OF_PAGES); tmdbSnapshot.FantasyMovies = await tmdbService.GetFantasyMoviesAsync(languageCode, regionCode, NUMBER_OF_PAGES); tmdbSnapshot.HistoryShowsAndMovies = await tmdbService.GetHistoryShowsAndMoviesAsync(languageCode, regionCode, NUMBER_OF_PAGES); tmdbSnapshot.RomanceShowsAndMovies = await tmdbService.GetHistoryShowsAndMoviesAsync(languageCode, regionCode, NUMBER_OF_PAGES); tmdbSnapshot.WarShowsAndMovies = await tmdbService.GetWarShowsAndMoviesAsync(languageCode, regionCode, NUMBER_OF_PAGES); tmdbSnapshot.DocumentaryShowsAndMovies = await tmdbService.GetDocumentaryShowsAndMovies(languageCode, regionCode, NUMBER_OF_PAGES); tmdbSnapshot.SitcomShows = await tmdbService.GetSitcomShowsAsync(languageCode, regionCode, NUMBER_OF_PAGES); tmdbSnapshot.AnthologyShows = await tmdbService.GetAnthologyShowsAsync(languageCode, regionCode, NUMBER_OF_PAGES); tmdbSnapshot.AnimeShowsAndMovies = await tmdbService.GetAnimeShowsAndMoviesAsync(languageCode, regionCode, NUMBER_OF_PAGES); tmdbSnapshot.TeenDramaShowsAndMovies = await tmdbService.GetTeenDramaShowsAndMoviesAsync(languageCode, regionCode, NUMBER_OF_PAGES); tmdbSnapshot.HistoricalDramaShowsAndMovies = await tmdbService.GetHistoricalDramaShowsAndMovies(languageCode, regionCode, NUMBER_OF_PAGES); tmdbSnapshot.WorkplaceComedyShowsAndMovies = await tmdbService.GetWorkplaceComedyShowsAndMovies(languageCode, regionCode, NUMBER_OF_PAGES); tmdbSnapshot.MedicalDramaShowsAndMovies = await tmdbService.GetMedicalDramaShowsAndMovies(languageCode, regionCode, NUMBER_OF_PAGES); CollectionFilter.FilterCollections(tmdbSnapshot, logger); CreateRandomizedJSONCollection(tmdbSnapshot, logger); logger.LogInformation($"DataCollector collecting data for language \"{languageCode}\" finished at: {DateTime.Now}"); return(tmdbSnapshot); }