private async Task ShowPreview(PreviewProviderFactory.PreviewType type, string filePath) { var previewProvider = _previewProviderFactory.Get(type); string selPath; if (File.Exists(filePath)) { selPath = filePath; } else { selPath = UIFunctions.GetFile($"Open a Kindle {previewProvider.Name} file...", "", "ASC files|*.asc", _settings.outDir); if (!selPath.Contains(previewProvider.FilenameValidator)) { _logger.Log($"Invalid {previewProvider.Name} file."); return; } } try { var previewForm = previewProvider.GenForm(); await previewForm.Populate(selPath, _cancelTokens.Token); previewForm.ShowDialog(); } catch (Exception ex) { _logger.Log("Error:\r\n" + ex.Message + "\r\n" + ex.StackTrace); } }
private void btnExtractTerms_Click(object sender, EventArgs e) { var selPath = UIFunctions.GetFile("Open a Kindle X-Ray file...", "", "ASC files|*.asc", _settings.outDir); if (selPath == "" || !selPath.Contains("XRAY.entities")) { _logger.Log("Invalid or no file selected."); return; } var newVer = XRayUtil.CheckXRayVersion(selPath); if (newVer == XRayUtil.XRayVersion.Invalid) { _logger.Log("Invalid X-Ray file."); return; } try { var terms = newVer == XRayUtil.XRayVersion.New ? _termsService.ExtractTermsNew(new SQLiteConnection($"Data Source={selPath}; Version=3;"), true) : _termsService.ExtractTermsOld(selPath); if (!Directory.Exists(Environment.CurrentDirectory + @"\xml\")) { Directory.CreateDirectory(Environment.CurrentDirectory + @"\xml\"); } var outfile = Environment.CurrentDirectory + @"\xml\" + Path.GetFileNameWithoutExtension(selPath) + ".xml"; Functions.Save(terms.ToList(), outfile); _logger.Log("Character data has been successfully extracted and saved to: " + outfile); } catch (Exception ex) { _logger.Log("Error:\r\n" + ex.Message + "\r\n" + ex.StackTrace); } }
private void btnBrowseXML_Click(object sender, EventArgs e) { txtXMLFile.Text = UIFunctions.GetFile(txtXMLFile.Text, "", "XML files (*.xml)|*.xml|TXT files (*.txt)|*.txt"); }