public override void ExportImpl(System.Windows.Window parentWindow, Data.DataMatrix matrix, string datasetName, object options) { var opts = options as DarwinCoreExporterOptions; var columnNames = new List <String>(); matrix.Columns.ForEach(col => { if (!col.IsHidden) { columnNames.Add(col.Name); } }); datasetName = SystemUtils.StripIllegalFilenameChars(datasetName); using (ZipFile archive = new ZipFile(opts.Filename)) { archive.AddEntry(String.Format("{0}\\occurrence.txt", datasetName), (String name, Stream stream) => { ExportToCSV(matrix, stream, opts, true); }); archive.AddEntry(String.Format("{0}\\meta.xml", datasetName), (String name, Stream stream) => { WriteMetaXml(stream, opts, columnNames); }); archive.Save(); } }
public override void ExportImpl(Window parentWindow, Data.DataMatrix matrix, string datasetName, object optionsObj) { ExcelExporterOptions options = optionsObj as ExcelExporterOptions; if (options == null) { return; } if (FileExistsAndNotOverwrite(options.Filename)) { return; } ProgressStart("Preparing to export..."); int totalRows = matrix.Rows.Count; using (ExcelPackage p = new ExcelPackage(new FileInfo(options.Filename))) { //Here setting some document properties var v = this.GetType().Assembly.GetName().Version; var version = String.Format("Version {0}.{1} (build {2})", v.Major, v.Minor, v.Revision); p.Workbook.Properties.Author = "BioLink " + version; var name = StringUtils.RemoveAll(datasetName, '&', '\'', '"', '<', '>'); p.Workbook.Properties.Title = name; var ws = p.Workbook.Worksheets.Add("DwC"); // Column headings... int colIndex = 1; matrix.Columns.ForEach(column => { var cell = ws.Cells[1, colIndex++].Value = column.Name; }); int rowIndex = 0; foreach (MatrixRow row in matrix.Rows) { for (int i = 0; i < matrix.Columns.Count; ++i) { if (!matrix.Columns[i].IsHidden) { object val = row[i]; String strValue = (val == null ? "" : val.ToString()); ws.SetValue(rowIndex + 2, i + 1, strValue); } } if (rowIndex++ % 1000 == 0) { double percent = ((double)rowIndex / (double)totalRows) * 100.0; ProgressMessage(String.Format("Exported {0} of {1} rows...", rowIndex, totalRows), percent); } } ProgressMessage(String.Format("Exported {0} of {1} rows. Saving file '{2}'", rowIndex, totalRows, options.Filename), 100); p.Save(); } ProgressEnd(String.Format("{0} rows exported.", totalRows)); }
public FrameworkElement ConstructView(IBioLinkReport report, Data.DataMatrix reportData, Utilities.IProgressObserver progress) { var viewer = new RTFReportViewer(); viewer.ReportName = report.Name; viewer.rtf.Rtf = reportData.Rows[0][0] as string; return(viewer); }
public override bool CanExport(Data.DataMatrix matrix, String datasetName) { foreach (Pair <string, string> p in _recognizedColumns) { if (matrix.ContainsColumn(p.First) && matrix.ContainsColumn(p.Second)) { return(true); } } return(false); }
public override void ExportImpl(Window parentWindow, Data.DataMatrix matrix, string datasetName, object optionsObj) { ExcelExporterOptions options = optionsObj as ExcelExporterOptions; if (options == null) { return; } if (FileExistsAndNotOverwrite(options.Filename)) { return; } ProgressStart("Preparing to export..."); int totalRows = matrix.Rows.Count; using (StreamWriter writer = new StreamWriter(options.Filename)) { writer.WriteLine("<?xml version=\"1.0\"?><ss:Workbook xmlns:ss=\"urn:schemas-microsoft-com:office:spreadsheet\">"); writer.WriteLine("<ss:Worksheet ss:Name=\"" + datasetName + "\">"); writer.WriteLine("<ss:Table>"); int currentRow = 0; foreach (MatrixRow row in matrix.Rows) { writer.WriteLine("<ss:Row>"); for (int i = 0; i < matrix.Columns.Count; ++i) { if (!matrix.Columns[i].IsHidden) { object val = row[i]; writer.Write("<ss:Cell><ss:Data ss:Type=\"String\">"); String str = (val == null ? "" : val.ToString()); writer.Write(Escape(str)); writer.Write("</ss:Data></ss:Cell>"); } } if (++currentRow % 1000 == 0) { double percent = ((double)currentRow / (double)totalRows) * 100.0; ProgressMessage(String.Format("Exported {0} of {1} rows...", currentRow, totalRows), percent); } writer.WriteLine("</ss:Row>"); } writer.WriteLine("</ss:Table>"); writer.WriteLine("</ss:Worksheet>"); writer.WriteLine("</ss:Workbook>"); } ProgressEnd(String.Format("{0} rows exported.", totalRows)); }
/// <summary> /// This exporter should only export columns that are Darwin core terms, so checks to see if there are any. If so, then yes, we can export them! /// </summary> /// <param name="matrix"></param> /// <param name="datasetName"></param> /// <returns></returns> public override bool CanExport(Data.DataMatrix matrix, string datasetName) { Boolean hasDwCTerms = false; matrix.Columns.ForEach(column => { DarwinCoreField field; if (Enum.TryParse <DarwinCoreField>(column.Name, true, out field)) { hasDwCTerms = true; } }); return(hasDwCTerms); }
protected override object GetOptions(System.Windows.Window parentWindow, Data.DataMatrix matrix, string datasetName) { var filename = PromptForFilename(".zip", "DwC-A Files (.zip)|*.zip", datasetName); if (!String.IsNullOrEmpty(filename)) { if (FileExistsAndNotOverwrite(filename)) { return(null); } DarwinCoreExporterOptions options = new DarwinCoreExporterOptions(); options.Filename = filename; return(options); } return(null); }
public override void ExportImpl(Window parentWindow, Data.DataMatrix matrix, string datasetName, object optionsObj) { ExcelExporterOptions options = optionsObj as ExcelExporterOptions; if (options == null) { return; } ProgressStart("Exporting..."); int totalRows = matrix.Rows.Count; if (FileExistsAndNotOverwrite(options.Filename)) { return; } FileInfo file = new FileInfo(options.Filename); using (SQLiteExporterService service = new SQLiteExporterService(file.FullName)) { service.CreateTable("ExportedData", matrix); service.BeginTransaction(); int count = 0; foreach (MatrixRow row in matrix) { service.InsertRow("ExportedData", row); if (++count % 1000 == 0) { double percent = ((double)count / (double)totalRows) * 100.0; ProgressMessage(String.Format("Exporting {0} rows of {1}...", count, totalRows), percent); } } ProgressMessage(String.Format("Saving...", count, totalRows)); service.CommitTransaction(); } ProgressEnd(String.Format("{0} rows exported.", totalRows)); }
public MultimediaThumbnailViewer(IBioLinkReport report, Data.DataMatrix reportData, Utilities.IProgressObserver progress) { InitializeComponent(); this.Report = report; this.ReportData = reportData; this.Progress = progress; var service = new SupportService(PluginManager.Instance.User); _tempFileManager = new KeyedObjectTempFileManager <int?>((mmId) => { if (mmId.HasValue) { byte[] bytes = service.GetMultimediaBytes(mmId.Value); if (bytes != null) { return(new MemoryStream(bytes)); } } return(null); }); Loaded += new RoutedEventHandler(MultimediaThumbnailViewer_Loaded); }
public override void ExportImpl(System.Windows.Window parentWindow, Data.DataMatrix matrix, string datasetName, object options) { var opt = options as KMLExporterOptions; if (opt != null) { var filename = opt.Filename; ProgressStart("Exporting points to '" + filename + "'"); int latIndex = -1; int lonIndex = -1; foreach (Pair <string, string> p in _recognizedColumns) { if (matrix.ContainsColumn(p.First) && matrix.ContainsColumn(p.Second)) { latIndex = matrix.IndexOf(p.First); lonIndex = matrix.IndexOf(p.Second); } } if (latIndex < 0 || lonIndex < 0) { ErrorMessage.Show("Failed to located Latitude and/or Longitude columns in data set!"); return; } int nameIndex = matrix.IndexOf(opt.LabelColumn); int rowCount = 0; using (var writer = new StreamWriter(filename)) { writer.WriteLine("<?xml version=\"1.0\" encoding=\"UTF-8\"?>"); writer.WriteLine("<kml xmlns=\"http://www.opengis.net/kml/2.2\">"); writer.WriteLine("<Document>"); foreach (MatrixRow row in matrix.Rows) { var lat = row[latIndex]; var lon = row[lonIndex]; if (lat != null && lon != null) { writer.WriteLine("<Placemark>"); string name = "" + rowCount; if (nameIndex >= 0) { var nameObj = row[nameIndex]; if (nameObj != null) { name = row[nameIndex].ToString(); } else { name = ""; } } if (!string.IsNullOrEmpty(name)) { writer.WriteLine(string.Format("<name>{0}</name>", name)); } writer.WriteLine(string.Format("<description>{0}</description>", BuildDescription(row))); writer.WriteLine(string.Format("<Point><coordinates>{0},{1}</coordinates></Point>", lon, lat)); writer.WriteLine("</Placemark>"); } if (++rowCount % 1000 == 0) { double percent = ((double)rowCount / (double)matrix.Rows.Count) * 100; this.ProgressMessage("Exporting points to '" + filename + "'", percent); } } writer.WriteLine("</Document>"); writer.WriteLine("</kml>"); } ProgressEnd(string.Format("{0} rows exported.", rowCount)); } }
public FrameworkElement ConstructView(IBioLinkReport report, Data.DataMatrix reportData, Utilities.IProgressObserver progress) { var viewer = new MultimediaThumbnailViewer(report, reportData, progress); return(viewer); }