Ejemplo n.º 1
0
        private void Main_Shown(object sender, EventArgs e)
        {
            LockControls();

            cmdDisableX_Click(sender, e);

            bool update = false;

            Converters.MainConverter converter = new Converters.MainConverter(DirectoriesSettings.UnconvertedPath);
            if (converter.CheckForUpdates())
            {
                Logs.WriteLine("Найдены обновления контента");
                update = true;

                MessageBox.Show("Начинается распаковка нового контента" + Environment.NewLine + "Главный элемент с вкладками будет временно недоступен", "Информация", MessageBoxButtons.OK, MessageBoxIcon.Information);

                //обновляем контент
                converter.UpdateContent(DirectoriesSettings.ConvertedPath);

                //перезаполняем treeview
                Scanners.MainScanner scanner = new Scanners.MainScanner(DirectoriesSettings.ConvertedPath);
                scanner.ScanContent(tree_Теория, tree_Примеры, tree_Тесты);

                //сериализуем treeview для будущего использования
                TreeViewUtils.Serialize(DirectoriesSettings.TreeViewPath, tree_Теория);
                TreeViewUtils.Serialize(DirectoriesSettings.TreeViewPath, tree_Примеры);
                TreeViewUtils.Serialize(DirectoriesSettings.TreeViewPath, tree_Тесты);

                File.Delete(Path.Combine(DirectoriesSettings.UnconvertedPath, "update.conf"));
                MessageBox.Show("Распаковка нового контента успешно завершена", "Информация", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            else
            {
                Logs.WriteLine("Обновления контента не найдены");
                TreeViewUtils.Deserialize(DirectoriesSettings.TreeViewPath, ref tree_Теория);
                TreeViewUtils.Deserialize(DirectoriesSettings.TreeViewPath, ref tree_Примеры);
                TreeViewUtils.Deserialize(DirectoriesSettings.TreeViewPath, ref tree_Тесты);
            }

            tree_Теория.ExpandAll();
            tree_Примеры.ExpandAll();
            tree_Тесты.ExpandAll();

            browser_Теория.Navigate("about:blank");
            browser_Примеры.Navigate("about:blank");

            Logs.WriteLine("Загрузка файла настроек");
            Settings temp = Settings.Load();

            if (temp == null)
            {
                Logs.WriteLine("Файл настроек не найден. Создание файла настроек.");
                settings = new Settings(this);
                try
                {
                    settings.Save();
                    Logs.WriteLine("Успешно сохранён файл настроек со стандартными значениями.");
                }
                catch (Exception ex)
                {
                    Logs.WriteLine("Ошибка при создании файла настроек.");
                    Logs.WriteException(ex);
                    MessageBox.Show("Невозможно сохранить настройки по умолчанию." + Environment.NewLine + "При следующем запуске будут загружены настройки по умолчанию." + Environment.NewLine + "Возможно, приложение нужно запустить с правами администратора.", "Ошибка сохранения", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
            else
            {
                Logs.WriteLine("Файл настроек успешно загружен");
                settings = temp;
            }

            UpdateAllStyles();
            settings.LoadFormState(this);
            if (update == true)
            {
                settings.ResetBookmarks();
            }
            else
            {
                settings.LoadBookmarks(tree_Теория, tree_Примеры, tree_Тесты);
            }

            cmdEnableX_Click(sender, e);
            UnlockControls();
        }
Ejemplo n.º 2
0
        private void Main_Shown(object sender, EventArgs e)
        {
            LockControls();

            cmdDisableX_Click(sender, e);

            bool update = false;

            Converters.MainConverter converter = new Converters.MainConverter(DirectoriesSettings.UnconvertedPath);
            if (converter.CheckForUpdates())
            {
                Logs.WriteLine("Найдены обновления контента");
                update = true;

                MessageBox.Show("Начинается распаковка нового контента" + Environment.NewLine + "Главный элемент с вкладками будет временно недоступен", "Информация", MessageBoxButtons.OK, MessageBoxIcon.Information);

                //обновляем контент
                converter.UpdateContent(DirectoriesSettings.ConvertedPath);

                //перезаполняем treeview
                Scanners.MainScanner scanner = new Scanners.MainScanner(DirectoriesSettings.ConvertedPath);
                scanner.ScanContent(tree_Теория, tree_Примеры, tree_Тесты);

                //сериализуем treeview для будущего использования
                TreeViewUtils.Serialize(DirectoriesSettings.TreeViewPath, tree_Теория);
                TreeViewUtils.Serialize(DirectoriesSettings.TreeViewPath, tree_Примеры);
                TreeViewUtils.Serialize(DirectoriesSettings.TreeViewPath, tree_Тесты);

                File.Delete(Path.Combine(DirectoriesSettings.UnconvertedPath, "update.conf"));
                MessageBox.Show("Распаковка нового контента успешно завершена", "Информация", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            else
            {
                Logs.WriteLine("Обновления контента не найдены");
                TreeViewUtils.Deserialize(DirectoriesSettings.TreeViewPath, ref tree_Теория);
                TreeViewUtils.Deserialize(DirectoriesSettings.TreeViewPath, ref tree_Примеры);
                TreeViewUtils.Deserialize(DirectoriesSettings.TreeViewPath, ref tree_Тесты);
            }

            tree_Теория.ExpandAll();
            tree_Примеры.ExpandAll();
            tree_Тесты.ExpandAll();

            browser_Теория.Navigate("about:blank");
            browser_Примеры.Navigate("about:blank");

            Logs.WriteLine("Загрузка файла настроек");
            Settings temp = Settings.Load();
            if (temp == null)
            {
                Logs.WriteLine("Файл настроек не найден. Создание файла настроек.");
                settings = new Settings(this);
                try
                {
                    settings.Save();
                    Logs.WriteLine("Успешно сохранён файл настроек со стандартными значениями.");
                }
                catch (Exception ex)
                {
                    Logs.WriteLine("Ошибка при создании файла настроек.");
                    Logs.WriteException(ex);
                    MessageBox.Show("Невозможно сохранить настройки по умолчанию." + Environment.NewLine + "При следующем запуске будут загружены настройки по умолчанию." + Environment.NewLine + "Возможно, приложение нужно запустить с правами администратора.", "Ошибка сохранения", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
            else
            {
                Logs.WriteLine("Файл настроек успешно загружен");
                settings = temp;
            }

            UpdateAllStyles();
            settings.LoadFormState(this);
            if (update == true)
                settings.ResetBookmarks();
            else
                settings.LoadBookmarks(tree_Теория, tree_Примеры, tree_Тесты);

            cmdEnableX_Click(sender, e);
            UnlockControls();
        }