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; }