Example #1
0
        // Конструктор
        public MainForm()
        {
            InitializeComponent();

            GUIController.Init(this);

            AppHelper.CreateMessage("Инициализация конфигурации приложения...", MessageType.Information, false, false, true);
            if (!AppHelper.InitConfiguration())
            {
                GUIController.ExitOnLoaded();
                return;
            }

            AppHelper.CreateMessage("Инициализация основных параметров...", MessageType.Information, false, false, true);
            if (!AppHelper.InitEngine())
            {
                GUIController.ExitOnLoaded();
                return;
            }
            AppHelper.MainTimer.Tick += delegate(object s, EventArgs e) {
                TasksHelper.RunTasksThread();
            };
            AppHelper.CreateMessage("Запуск планировщика...", MessageType.Information, false, false, true);
            AppHelper.MainTimer.Start();

            AppHelper.CreateMessage("Инициализация проверки связи...", MessageType.Information, false, false, true);
            if (!InitPinger())
            {
                return;
            }
        }
Example #2
0
        /// <summary>
        /// Выролняет проверку наличия обновлений
        /// </summary>
        /// <returns></returns>
        public static void CheckUpdates()
        {
            if (IsUpdateRunning)
            {
                return;
            }
            IsUpdateRunning = true;

            try {
                if (ARGS.Length > 0)
                {
                    foreach (string arg in ARGS)
                    {
                        if (arg.ToLower() == "-u" && !UpdatesInstalled)
                        {
                            Process[] processes = Process.GetProcessesByName("Updater");
                            if (processes.Length > 0)
                            {
                                Process         proc = processes[0];
                                FileVersionInfo info = FileVersionInfo.GetVersionInfo(proc.MainModule.FileName);
                                if (info.CompanyName == "ФГУП Почта Крыма")
                                {
                                    proc.Kill();
                                }
                            }

                            string path = Path.Combine(CurrentDirectory, "Updater.exe");
                            if (File.Exists(path))
                            {
                                File.Delete(path);
                            }
                            File.WriteAllBytes(path, Properties.Resources.Updater);

                            // Создаем сообщение об успешной установке обновления
                            CreateMessage("Обновление успешно установлено", MessageType.Information, false, true, true);

                            UpdatesInstalled = true;
                        }
                    }
                }
            }
            catch (Exception ex) {
                CreateMessage("Ошибка при установке обновлений: " + ex.ToString(), MessageType.Error, true, false, true);
            }

            try {
                // Установка модуля обновления при его отсутствии
                string updaterPath = Path.Combine(CurrentDirectory, "Updater.exe");
                if (!File.Exists(updaterPath))
                {
                    File.WriteAllBytes(updaterPath, Properties.Resources.Updater);
                }
            }
            catch (Exception ex) {
                CreateMessage("Ошибка при распаковке клиента обновлений: " + ex.ToString(), MessageType.Error, false, false, false);
            }

            try {
                CreateMessage("Проверка обновлений конфигурационного файла...", MessageType.Information, false, false, true);
                if (UpdatesHelper.CheckConfigUpdates(Path.Combine(CurrentDirectory, "settings.upd"), Configuration))
                {
                    // Сохраняем изменения в конфигурационный файл
                    ConfHelper.SaveConfig(Configuration, Encoding.UTF8, true);
                    Configuration = ConfHelper.LoadConfig <Global>();
                    CreateMessage("Выполнено обновление конфигурационного файла", MessageType.Information, false, false, true);
                }
            }
            catch (Exception ex) {
                CreateMessage("Ошибка при установке обновлений конфигурационного файла: " + ex.ToString(), MessageType.Error, false, false, true);
            }

            try {
                CreateMessage("Проверка обновлений...", MessageType.Information, false, false, true);
                if (UpdatesHelper.CheckUpdates(Configuration.Updates.ServerName, Version, ProductName))
                {
                    Process.Start(Path.Combine(CurrentDirectory, "Updater.exe"), string.Format("{0} {1} {2}", Version, Configuration.Updates.ServerName, ProductName));
                    GUIController.ExitOnLoaded();
                    return;
                }
            }
            catch (Exception ex) {
                CreateMessage("Ошибка при проверке обновлений: " + ex.ToString(), MessageType.Error, false, false, true);
            }

            IsUpdateRunning = false;
        }