protected override void OnStartup(object sender, StartupEventArgs e) { if (!mutex.WaitOne(TimeSpan.FromSeconds(1), false)) { System.Windows.Application.Current.Shutdown(); } ResultObject <object> ro = new ResultObject <object>(true); try { Storage db = _container.GetInstance <PerstStorageFactory>().OpenConnection(PerstStorageFactory.MAIN_DATABASE_NAME); StoragePool sp = _container.GetInstance <StoragePool>(); sp.Add(PerstStorageFactory.MAIN_DATABASE_NAME, db); var vm = _container.GetInstance <MainWindowViewModel>(); _container.BuildUp(vm); _container.GetInstance <IWindowManager>().ShowWindow(vm); } catch (StorageError ex) { ro = new ResultObject <object>(false); ro.AddMessage("Nelze načíst Vaše data."); } catch (Exception ex) { ro = new ResultObject <object>(false); ro.AddMessage("Při spouštění aplikace došlo k neočekávané chybě"); } if (!ro.Success) { StartupErrorWindowViewModel errw = _container.GetInstance <StartupErrorWindowViewModel>(); errw.Text = ro.GetLastMessage().Text; _container.GetInstance <IWindowManager>().ShowDialog(errw); } }
protected override void OnStartup(object sender, StartupEventArgs e) { StoragePool sp = _container.GetInstance <StoragePool>(); Storage db = _container.GetInstance <prjt.Services.Persistence.StorageFactory>().OpenConnection(prjt.Services.Persistence.StorageFactory.MAIN_DATABASE_NAME); sp.Add(prjt.Services.Persistence.StorageFactory.MAIN_DATABASE_NAME, db); //GeneratePersons(db); MainViewModel mvm = _container.GetInstance <MainViewModel>(); _container.BuildUp(mvm); _container.GetInstance <IWindowManager>().ShowWindow(mvm); }
public ResultObject <object> Import(string importFilePath, string appDBDirectory, string activeDBName, string activeDBExtension) { ResultObject <object> ro; try { Storage importedDb = StorageFactory.Instance.CreateStorage(); importedDb.Open(importFilePath, 4 * 1024 * 1024); importedDb.Close(); ro = new ResultObject <object>(true); ro.AddMessage("Import dat proběhl úspěšně!", ResultObjectMessageSeverity.SUCCESS); } catch (StorageError e) { ro = new ResultObject <object>(false); ro.AddMessage("Ze zvoleného souboru nelze importovat data.", ResultObjectMessageSeverity.WARNING); } catch (Exception e) { ro = new ResultObject <object>(false); ro.AddMessage("Při importu dat došlo k chybě."); } if (!ro.Success) { return(ro); } _storagePool.Close(PerstStorageFactory.MAIN_DATABASE_NAME); DateTime now = DateTime.Now; string activeDbFilePath = Path.Combine(appDBDirectory, activeDBName + "." + activeDBExtension); string oldDbBackupFileName = string.Format("backup_{0}_{1}_{2}_{3}_{4}_{5}_v{6}.{7}", now.Year, now.Month, now.Day, now.Hour, now.Minute, now.Second, Assembly.GetExecutingAssembly().GetName().Version.ToString().Replace(".", "-"), activeDBExtension); string lastWorkingDbBackupPath = Path.Combine(appDBDirectory, oldDbBackupFileName); File.Move(activeDbFilePath, lastWorkingDbBackupPath); File.Copy(importFilePath, activeDbFilePath); _storagePool.Add(PerstStorageFactory.MAIN_DATABASE_NAME, _storageFactory.OpenConnection(PerstStorageFactory.MAIN_DATABASE_NAME)); return(ro); }