public static void Enrich(Object state, ElapsedEventArgs eventArgs) { try { lock (lockThis) { BusyEnriching = true; } int ping = Proxies.CoreService.Ping(Constants.RestApiVersion).Result; if (ping > 0) { log.DebugFormat("Ping {0}", ping); } var matchMethods = EpisodeMatchMethodLoader.GetMatchMethods(); var tvDbApi = new TvDbService(config.CacheFolder, config.ApiKey); var tvdbLibAccess = new TvdbLibAccess(config, matchMethods, tvDbApi); var enricher = new Enricher(config, tvdbLibAccess, matchMethods); enricher.EnrichUpcomingProgramsAsync().Wait(); } catch (Exception exception) { log.Error("Error enriching", exception); } finally { lock (lockThis) { BusyEnriching = false; } if (!enrichTimer.Enabled) { enrichTimer.Interval = TimeSpan.FromHours(waitTime).TotalMilliseconds; enrichTimer.Start(); } } }