예제 #1
0
        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)));
            }
        }
예제 #2
0
        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 ("Версия базы не соответствует программе, но обновление не найдено");
            }
        }