/// <summary> /// Called when a scheduled job executes /// </summary> /// <returns>A status message to be stored in the database log and visible from admin mode</returns> public override string Execute() { var sw = new Stopwatch(); sw.Start(); OnStatusChanged("Starting execution of 23 video synchronization"); var intermediateVideoDataRepository = new IntermediateVideoDataRepository(); List <BasicContent> videoContent; var firstTry = intermediateVideoDataRepository.TryLoadFromService(out videoContent); if (!firstTry) { OnStatusChanged("Loading videos from 23 video failed. Retrying."); videoContent = intermediateVideoDataRepository.LoadFromService(); } OnStatusChanged(String.Format("{0} videos and channels found. Now storing to DDS", videoContent.Count)); intermediateVideoDataRepository.Save(videoContent); VideoSynchronizationEventHandler.DataStoreUpdated(); if (_stopSignaled) { return("Stop of job was called"); } sw.Stop(); return("Done" + (firstTry ? string.Empty : " with retry") + ". Time taken " + sw.Elapsed.ToString("g")); }
static void dataStoreInvalidationEvent_Raised(object sender, EventNotificationEventArgs e) { _log.Debug("dataStoreInvalidationEvent '{2}' handled - raised by '{0}' on '{1}'", e.RaiserId, Environment.MachineName, e.EventId); _log.Debug("Begin: refreshing video items on: '{0}'", Environment.MachineName); var provider = ServiceLocator.Current.GetInstance <IContentProviderManager>().GetProvider(Constants.ProviderKey) as TwentyThreeVideoProvider; var intermediateVideoDataRepository = new IntermediateVideoDataRepository(); var videoItems = intermediateVideoDataRepository.Load(); provider.RefreshItems(videoItems.ToList()); _log.Debug("End: refreshing video items on '{0}'", Environment.MachineName); // CustomRedirectHandler handler = CustomRedirectHandler.Current; }