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();
                }
            }
        }
        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();
                }
            }
        }