public static void Update() { var oldThreats = ((ThreatListViewModel)((ThreatList)MainWindow.Instance.MainThreatList.Content).DataContext) .AllThreats; String tempPath = Path.Combine(Path.GetTempPath(), Path.GetFileName(OpenManager.OpenedFilePath)); if (!DownloadManager.DownloadFile(tempPath)) { return; } if (!XlsxThreatReader.ReadThreats(tempPath, out IEnumerable <Threat> temp)) { return; } var newThreats = temp.ToList(); var updateReport = UpdateReport.CreateUpdateReport(oldThreats, newThreats); var newMainWindow = new MainWindow(newThreats); newMainWindow.Show(); MainWindow.Instance.Close(); MainWindow.Instance = newMainWindow; try { UpdateFile(OpenManager.OpenedFilePath, tempPath, newThreats); } catch (Exception e) { MessageBox.Show(e.Message, "Не удалось обновить файл"); return; } new UpdateReportWindow(updateReport).ShowDialog(); }
private static Boolean ReadThreats(FileInfo fileInfo, out IEnumerable <Threat> threats) { switch (fileInfo.Extension) { case XlsxThreatReader.DefaultExtension: return(XlsxThreatReader.ReadThreats(fileInfo.FullName, out threats)); case JsonThreatReader.DefaultExtension: return(JsonThreatReader.ReadThreats(fileInfo.FullName, out threats)); default: return(JsonThreatReader.ReadThreats(fileInfo.FullName, out threats)); } }