/// <summary> /// Reloads the database. /// </summary> /// <param name="progress">The progress object.</param> public void Reload(IProgress progress) { DbDebugHelper.OnUpdate("Reloading database..."); OnPreviewReloaded(); try { IOHelper.SetupFileManager(); Commands.ClearCommands(); DbPathLocator.ClearStoredFiles(); ResetAllSettings(); var dbs = _dbs.Values.ToList(); for (int i = 0; i < dbs.Count; i++) { dbs[i].Clear(); DbDebugHelper.OnCleared(dbs[i].DbSource, null, dbs[i]); } DbDebugHelper.OnUpdate("All database tables have been cleared."); for (int i = 0; i < dbs.Count; i++) { var db = dbs[i]; if (db.CanBeLoaded) { CLHelper.CStart(i); db.LoadDb(); if (progress != null) { progress.Progress = (i + 1f) / dbs.Count * 100f; //ErrorHandler.HandleException("Now at " + progress.Progress + "% done."); } CLHelper.CStopAndDisplay(db.DbSource.DisplayName, i); } if (progress != null) { AProgress.IsCancelling(progress); } } ClearCommands(); } finally { DbDebugHelper.OnUpdate("Database reloaded..."); } OnReloaded(); SdeEditor.Instance.Dispatch(p => p.OnSelectionChanged()); }