예제 #1
0
        public MainWindow()
        {
            InitializeComponent();
            image.Source = new BitmapImage(new Uri($"/keks/kek-{kekn}.jpg", UriKind.Relative));

            fsmanager      = new LocalStorageManager();
            visibleThreats = new List <Threat>();

            if (fsmanager.FindLocalStorage(out threats))
            {
                MessageBox.Show("Локальное хранилище найдено!", "Good news", MessageBoxButton.OK);
                for (int i = 0; i < PAGE_SIZE && i < threats.Count; i++)
                {
                    visibleThreats.Add(threats[i]);
                }
            }
            else
            {
                var res = MessageBox.Show("Локальное хранилище не найдено!\nСкачать данные из официального банка данных угроз ФСТЭК России?", "Bad news", MessageBoxButton.YesNo);
                if (res == MessageBoxResult.Yes)
                {
                    try
                    {
                        FileInfo file;
                        fsmanager.DownloadFile(out file);
                        if (fsmanager.TryParseThreats(file, out threats))
                        {
                            for (int i = 0; i < PAGE_SIZE && i < threats.Count; i++)
                            {
                                visibleThreats.Add(threats[i]);
                            }
                        }
                    }
                    catch (WebException)
                    {
                        MessageBox.Show("Ошибка загрузки файла", "Bad News", MessageBoxButton.OK);
                        return;
                    }
                    catch (UnauthorizedAccessException)
                    {
                        MessageBox.Show("Недостаточно прав для создания директории локального хранилища", "Bad News", MessageBoxButton.OK);
                        return;
                    }
                }
            }

            this.dataGrid.ItemsSource = visibleThreats;
        }
예제 #2
0
        private void UpdateDBButton_Click(object sender, RoutedEventArgs e)
        {
            FileInfo file;

            try
            {
                fsmanager.DownloadFile(out file);
            }
            catch (WebException)
            {
                MessageBox.Show("Ошибка загрузки файла", "Bad News", MessageBoxButton.OK);
                return;
            }
            catch (UnauthorizedAccessException)
            {
                MessageBox.Show("Недостаточно прав для создания директории локального хранилища", "Bad News", MessageBoxButton.OK);
                return;
            }
            List <Threat> newThreats;

            if (fsmanager.TryParseThreats(file, out newThreats))
            {
                int n;
                DifferencesWindow difWindow = new DifferencesWindow(threats, newThreats, out n);
                if (n == 0)
                {
                    MessageBox.Show("Никаких изменений не произошло", "Good news", MessageBoxButton.OK);
                    difWindow.Close();
                }
                else
                {
                    var res = MessageBox.Show($"Локальная база успешно обновлена.\nВсего изменений: {n}\nПоказать изменения?", "Good news", MessageBoxButton.YesNo);
                    if (res == MessageBoxResult.Yes)
                    {
                        difWindow.Show();
                    }
                    threats = newThreats;
                    UpdatePage(1);
                }
            }
        }