[longomatch] Update the current database after the migration



commit 0cd8aeca387db41d16722c296bd1dc20a157718a
Author: Andoni Morales Alastruey <ylatuya gmail com>
Date:   Tue Oct 14 19:53:58 2014 +0200

    Update the current database after the migration

 LongoMatch.Core/Interfaces/IDataBaseManager.cs  |    1 +
 LongoMatch.Services/Services/CoreServices.cs    |   13 +++++----
 LongoMatch.Services/Services/DataBaseManager.cs |   33 ++++++++++++-----------
 LongoMatch.Services/Services/ToolsManager.cs    |    6 +++-
 4 files changed, 30 insertions(+), 23 deletions(-)
---
diff --git a/LongoMatch.Core/Interfaces/IDataBaseManager.cs b/LongoMatch.Core/Interfaces/IDataBaseManager.cs
index d07b243..a0b4323 100644
--- a/LongoMatch.Core/Interfaces/IDataBaseManager.cs
+++ b/LongoMatch.Core/Interfaces/IDataBaseManager.cs
@@ -26,6 +26,7 @@ namespace LongoMatch.Core.Interfaces
                IDatabase Add (string name);
                bool Delete (IDatabase db);
                IDatabase ActiveDB { get; set; }
+               void UpdateDatabases ();
                List<IDatabase> Databases { get; set; }
        }
 }
diff --git a/LongoMatch.Services/Services/CoreServices.cs b/LongoMatch.Services/Services/CoreServices.cs
index 0cb4f81..79c6902 100644
--- a/LongoMatch.Services/Services/CoreServices.cs
+++ b/LongoMatch.Services/Services/CoreServices.cs
@@ -37,6 +37,12 @@ namespace LongoMatch.Services
                static EventsManager eManager;
                static HotKeysManager hkManager;
                static RenderingJobsManager videoRenderer;
+               static ProjectsManager projectsManager;
+               static PlaylistManager plManager;
+               static ToolsManager toolsManager;
+               static TemplatesService ts;
+                               
+
                public static IProjectsImporter ProjectsImporter;
                #if OSTYPE_WINDOWS
                [DllImport("libglib-2.0-0.dll") /* willfully unmapped */ ]
@@ -78,11 +84,6 @@ namespace LongoMatch.Services
 
                public static void StartServices (IGUIToolkit guiToolkit, IMultimediaToolkit 
multimediaToolkit)
                {
-                       ProjectsManager projectsManager;
-                       PlaylistManager plManager;
-                       ToolsManager toolsManager;
-                       TemplatesService ts;
-                               
                        ts = new TemplatesService ();
                        Config.TeamTemplatesProvider = ts.TeamTemplateProvider;
                        Config.CategoriesTemplatesProvider = ts.CategoriesTemplateProvider;
@@ -99,7 +100,7 @@ namespace LongoMatch.Services
                        projectsManager = new ProjectsManager (guiToolkit, multimediaToolkit, ts);
                        
                        /* State the tools manager */
-                       toolsManager = new ToolsManager (guiToolkit);
+                       toolsManager = new ToolsManager (guiToolkit, dbManager);
                        ProjectsImporter = toolsManager;
                        
                        /* Start the events manager */
diff --git a/LongoMatch.Services/Services/DataBaseManager.cs b/LongoMatch.Services/Services/DataBaseManager.cs
index 914d9b1..3297e6f 100644
--- a/LongoMatch.Services/Services/DataBaseManager.cs
+++ b/LongoMatch.Services/Services/DataBaseManager.cs
@@ -40,7 +40,7 @@ namespace LongoMatch.DB
                        this.guiToolkit = guiToolkit;
                        Config.EventsBroker.ManageDatabasesEvent += HandleManageDatabase;
                        Config.EventsBroker.OpenedProjectChanged += (p, pt, f, a) => {OpenedProject = p;};
-                       FindDBS ();
+                       UpdateDatabases ();
                }
 
                public Project OpenedProject {
@@ -105,6 +105,22 @@ namespace LongoMatch.DB
                        set;
                }
 
+               public void UpdateDatabases ()
+               {
+                       Databases = new List<IDatabase> ();
+                       DirectoryInfo dbdir = new DirectoryInfo (DBDir);
+                       
+                       foreach (DirectoryInfo subdir in dbdir.GetDirectories()) {
+                               if (subdir.FullName.EndsWith (".ldb")) {
+                                       IDatabase db = new DataBase (subdir.FullName);  
+                                       if (db != null) {
+                                               Log.Information ("Found database " + db.Name);
+                                               Databases.Add (db);
+                                       }
+                               }
+                       }
+               }
+
                string NameToFile (string name)
                {
                        return Path.Combine (DBDir, name + '.' + Extension);
@@ -131,21 +147,6 @@ namespace LongoMatch.DB
                        }
                }
 
-               void FindDBS ()
-               {
-                       Databases = new List<IDatabase> ();
-                       DirectoryInfo dbdir = new DirectoryInfo (DBDir);
-                       
-                       foreach (DirectoryInfo subdir in dbdir.GetDirectories()) {
-                               if (subdir.FullName.EndsWith (".ldb")) {
-                                       IDatabase db = new DataBase (subdir.FullName);  
-                                       if (db != null) {
-                                               Log.Information ("Found database " + db.Name);
-                                               Databases.Add (db);
-                                       }
-                               }
-                       }
-               }
        }
 }
 
diff --git a/LongoMatch.Services/Services/ToolsManager.cs b/LongoMatch.Services/Services/ToolsManager.cs
index 3fc7b47..26364a1 100644
--- a/LongoMatch.Services/Services/ToolsManager.cs
+++ b/LongoMatch.Services/Services/ToolsManager.cs
@@ -36,10 +36,12 @@ namespace LongoMatch.Services
                
                Project openedProject;
                IGUIToolkit guiToolkit;
+               IDataBaseManager dbManager;
 
-               public ToolsManager (IGUIToolkit guiToolkit)
+               public ToolsManager (IGUIToolkit guiToolkit, IDataBaseManager dbManager)
                {
                        this.guiToolkit = guiToolkit;
+                       this.dbManager = dbManager;
                        ProjectImporters = new List<ProjectImporter> ();
                        
                        RegisterImporter (Project.Import, Constants.PROJECT_NAME,
@@ -196,6 +198,8 @@ namespace LongoMatch.Services
                        }
                        using (Process exeProcess = Process.Start(startInfo)) {
                                exeProcess.WaitForExit ();
+                               dbManager.UpdateDatabases ();
+                               dbManager.SetActiveByName (dbManager.ActiveDB.Name);
                        }
                }
        }


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]