protected override void OnStartup(object sender, StartupEventArgs e) { if (!mutex.WaitOne(TimeSpan.FromSeconds(1), false) || AppDomain.CurrentDomain.IsDefaultAppDomain() == true) { System.Windows.Application.Current.Shutdown(); } ObjectContainerRegistry ocr = _container.GetInstance <ObjectContainerRegistry>(); ResultObject ro = new ResultObject(true); try { IObjectContainer db = _container.GetInstance <Db4oObjectContainerFactory>().Create(Db4oObjectContainerFactory.MAIN_DATABASE_NAME); ocr.Add(Db4oObjectContainerFactory.MAIN_DATABASE_NAME, db); var vm = _container.GetInstance <MainWindowViewModel>(); _container.BuildUp(vm); _container.GetInstance <IWindowManager>().ShowWindow(vm); } catch (DatabaseFileLockedException ex) { ro = new ResultObject(false); ro.AddMessage("Nelze načíst Vaše data. Soubor je využíván jiným procesem."); } catch (Exception ex) { ro = new ResultObject(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(); _container.GetInstance <IWindowManager>().ShowDialog(errw); } }
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); } }
public ResultObject <object> BackupData(string filePath) { ResultObject <object> ro; try { Storage().Backup(new FileStream(filePath, FileMode.Create)); ro = new ResultObject <object>(true); ro.AddMessage("Záloha databáze proběhla úspěšně!", ResultObjectMessageSeverity.SUCCESS); } catch (IOException e) { ro = new ResultObject <object>(false); ro.AddMessage("Zálohu databáze nelze dokončit. Došlo k chybě."); } return(ro); }
public ResultObject <DefaultSettings> CreateDefaultSettings(string identifier) { DefaultSettings ds = new DefaultSettings(identifier); ResultObject <DefaultSettings> ro; if (Root().DefaultSettings.Put(ds) == false) { ro = new ResultObject <DefaultSettings>(false); ro.AddMessage(string.Format("Nastavení s názem \"{0}\" již existuje.", identifier)); } else { ro = new ResultObject <DefaultSettings>(true, ds); Storage().Commit(); } return(ro); }
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); }
public ResultObject Import(string importFilePath, string appDBDirectory, string activeDBName, string activeDBExtension) { ResultObject ro; try { IObjectContainer db = _factory.OpenConnection(importFilePath); ro = new ResultObject(true, db); ro.AddMessage("Import dat proběhl úspěšně!"); db.Close(); } catch (IncompatibleFileFormatException e) { ro = new ResultObject(false); ro.AddMessage("Import dat selhal. Špatný formát dat."); } catch (DatabaseReadOnlyException e) { ro = new ResultObject(false); ro.AddMessage("Import dat selhal. Nelze importovat data jen pro čtení."); } catch (Exception e) { ro = new ResultObject(false); ro.AddMessage("Zvolená data nelze importovat."); } if (!ro.Success) { return(ro); } 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); return(ro); }