public async Task BindWatchFoldersList() { if (lbWatchFolders.InvokeRequired) { BindWatchFoldersListDelegate d = new BindWatchFoldersListDelegate(BindWatchFoldersList); Invoke(d, new object[] { }); } else { WatchFolders = await WatchFolderRepo.Load(); foreach (var watchFolder in WatchFolders) { if (watchFolder.Path == @"%USERPROFILE%\Music") { watchFolder.Path = DirectoryHelper.EllipsisPath(DirectoryHelper.GetPath(KnownFolder.Music), 100); } else { DirectoryHelper.EllipsisPath(watchFolder.Path, 100); } } lbWatchFolders.DataSource = new BindingSource(WatchFolders, null); lbWatchFolders.DisplayMember = "Path"; lbWatchFolders.ValueMember = "Id"; } }
/// <summary> /// Checks if the database is OK /// </summary> public static void CheckDatabaseIntegrity() { try { Logger.LogInfo("CheckDatabaseIntegrity", "Checking database integrity"); var _s = new SettingsRepo().Load().Result; var _w = new WatchFolderRepo().Load().Result; var _m = new MusicFileRepo().LoadAll(true).Result; var _p = new PlaylistFileRepo().LoadAll().Result; var _l = new LogsRepo().LoadSpecific("3").Result; Logger.LogInfo("CheckDatabaseIntegrity", "Database integrity check complete - No issues"); } catch (Exception e) { if ( MessageBox.Show( $"Unfortunately the database integrity check has failed ({e.Message}). YT Music Uploader cannot continue in this state. " + $"If you click 'OK', YT Music Uploader will reset the database to its original state. You'll lose any uploaded file states but the program" + $" should then work. Otherwise click cancel to attempt to rectify the database yourself located in: %localappdata%\\YTMusicUploader", "Database Integrity Check Fail", MessageBoxButton.OKCancel, MessageBoxImage.Error) == MessageBoxResult.OK) { ResetDatabase(); Logger.LogInfo("CheckDatabaseIntegrity", "Database has been reset due to integrity check failure. Comfirmed by user."); } } }
private async Task AddWatchFolder() { WatchFolderRepo.Insert(new WatchFolder { Path = FolderSelector.SelectedPath }).Wait(); await BindWatchFoldersList(); QueueChecker.Queue = true; }
private async Task RemoveWachFolder() { try { if ((WatchFolder)lbWatchFolders.SelectedItem != null) { await WatchFolderRepo.Delete(((WatchFolder)lbWatchFolders.SelectedItem).Id); await MusicFileRepo.DeleteWatchFolder(((WatchFolder)lbWatchFolders.SelectedItem).Path); RepopulateAmountLables(); } } catch { } await BindWatchFoldersList(); QueueChecker.Queue = true; }
private async Task AddWatchFolder() { try { Logger.LogInfo("AddWatchFolder", "Watch folder added: " + FolderSelector.SelectedPath); WatchFolderRepo.Insert(new WatchFolder { Path = FolderSelector.SelectedPath }).Wait(); await BindWatchFoldersList(); Restart(); } catch (Exception e) { Logger.Log(e, "AddWatchFolder"); } }
private async Task RemoveWachFolder() { try { if ((WatchFolder)lbWatchFolders.SelectedItem != null) { Logger.LogInfo("RemoveWachFolder", "Watch folder removed: " + ((WatchFolder)lbWatchFolders.SelectedItem).Path); await WatchFolderRepo.Delete(((WatchFolder)lbWatchFolders.SelectedItem).Id); await MusicFileRepo.DeleteWatchFolder(((WatchFolder)lbWatchFolders.SelectedItem).Path); RepopulateAmountLables(); } } catch (Exception e) { Logger.Log(e, "RemoveWachFolder"); } await BindWatchFoldersList(); Restart(); }