private async void RefreshFileCache(IProgress <IndicatorProgressReport> progress) { if (Theme == null) { return; } FileDiscoveryService fileDiscoveryService = new FileDiscoveryService((WallpaperManagerContext)ThemeRepository.DatabaseInfo.Context); var cache = await fileDiscoveryService.PreformFileDiscovery(Theme, progress); SetFileCache(cache); }
public async void Run(IBackgroundTaskInstance taskInstance) { Debug.WriteLine($"{nameof(FileDiscoveryBackgroundTask)} - {nameof(Run)} - Begun"); // Register the Monitoring Events taskInstance.Canceled += TaskInstance_Canceled; taskInstance.Task.Completed += Task_Completed; taskInstance.Task.Progress += Task_Progress; // If the task is not allowed to run, return early if (!IsTaskAllowedToRun()) { return; } // Otherwise, we jump into File Discovery Process _deferral = taskInstance.GetDeferral(); using (var context = new WallpaperManagerContext()) { var themeRepo = new WallpaperThemeRepository(context); var fileDiscoveryService = new FileDiscoveryService(context); // Preform File Discovery for ALL of the themes //_deferral = taskInstance.GetDeferral(); //await fileDiscoveryService.PreformFileDiscoveryAll(null); //_deferral.Complete(); // Preform File Discovery for the Desktop Wallpaper Theme Debug.WriteLine($"{nameof(FileDiscoveryBackgroundTask)} - {nameof(ActiveDesktopThemeSetting)} - Started"); var activeDesktopThemeSetting = new ActiveDesktopThemeSetting(); var activeDesktopThemeSettingValue = activeDesktopThemeSetting.Value; if (activeDesktopThemeSettingValue.HasValue) { var activeWallpaperTheme = themeRepo.Find(activeDesktopThemeSettingValue.Value); await fileDiscoveryService.PreformFileDiscovery(activeWallpaperTheme, null); } Debug.WriteLine($"{nameof(FileDiscoveryBackgroundTask)} - {nameof(ActiveDesktopThemeSetting)} - Completed"); // Preform File Discovery for the Lockscreen Theme Debug.WriteLine($"{nameof(FileDiscoveryBackgroundTask)} - {nameof(ActiveLockscreenThemeSetting)} - Started"); var activeLockscreenThemeSetting = new ActiveLockscreenThemeSetting(); var activeLockscreenThemeSettingValue = activeLockscreenThemeSetting.Value; if (activeLockscreenThemeSettingValue.HasValue && activeLockscreenThemeSettingValue != activeDesktopThemeSettingValue) { var activeLockscreenTheme = themeRepo.Find(activeLockscreenThemeSettingValue.Value); await fileDiscoveryService.PreformFileDiscovery(activeLockscreenTheme, null); } Debug.WriteLine($"{nameof(FileDiscoveryBackgroundTask)} - {nameof(ActiveLockscreenThemeSetting)} - Completed"); } // Update the FileDiscovery Last Run var fileDiscoveryLastRunSetting = new FileDiscoveryLastRunSetting(); fileDiscoveryLastRunSetting.Value = DateTime.UtcNow; // Update the FileDiscovery Background Task Last Run var fileDiscoveryTaskLastRunSetting = new FileDiscoveryTaskLastRunSetting(); fileDiscoveryTaskLastRunSetting.Value = DateTime.UtcNow; Debug.WriteLine($"{nameof(FileDiscoveryBackgroundTask)} - {nameof(Run)} - Completed"); _deferral.Complete(); }