public static void TryUpdate() { logger.Debug(System.Reflection.Assembly.GetCallingAssembly().FullName); Version currentDB = Version.Parse(MainSupport.BaseParameters.Version); var appVersion = MainSupport.ProjectVerion.Version; if (currentDB.Major == appVersion.Major && currentDB.Minor == appVersion.Minor) { return; } var update = updates.Find(u => u.Source == currentDB); if (update != null) { if (!QSMain.User.Admin) { NotAdminErrorAndExit(false, update.Source, update.Destanation); } var dlg = new DBUpdateProcess(update); dlg.Show(); dlg.Run(); if (!dlg.Success) { Environment.Exit(1); } dlg.Destroy(); MainSupport.LoadBaseParameters(); if (appVersion.Major != update.Destanation.Major && appVersion.Minor != update.Destanation.Minor) { TryUpdate(); } } else { logger.Error("Версия базы не соответствует программе, но обновление не найдено"); ShowErrorAndExit(CheckBaseVersion.TextMessage + String.Format("\nОбновление базы для версии {0} не поддерживается.", StringWorks.VersionToShortString(currentDB))); } }
public static void TryUpdate() { logger.Debug (System.Reflection.Assembly.GetCallingAssembly().FullName); Version currentDB = Version.Parse(MainSupport.BaseParameters.Version); var appVersion = MainSupport.ProjectVerion.Version; if (currentDB.Major == appVersion.Major && currentDB.Minor == appVersion.Minor) return; var update = updates.Find(u => u.Source == currentDB); if(update != null) { if (!QSMain.User.Admin) NotAdminErrorAndExit(false); var dlg = new DBUpdateProcess (update); dlg.Show (); dlg.Run (); if(!dlg.Success) Environment.Exit(1); dlg.Destroy (); MainSupport.LoadBaseParameters (); if (appVersion.Major != update.Destanation.Major && appVersion.Minor != update.Destanation.Minor) TryUpdate (); } else { logger.Error ("Версия базы не соответствует программе, но обновление не найдено"); } }