private void OnExport(Window window) { if (ExportformatCsv) { try { var path = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments); var file = Path.Combine(path, "Restekiste.csv"); var i = 1; while (File.Exists(file)) { file = Path.Combine(path, string.Format("Restekiste ({0}).csv", i++)); } using (var sw = new StreamWriter(file, false, Encoding.Default)) { sw.Write(CsvFormatter.GetFormattetRestekiste(ResteListe)); } Process.Start(new ProcessStartInfo("explorer.exe") { Arguments = "/select, \"" + file + "\"" }); } catch (IOException ex) { HilfsFunktionen.ShowMessageBox(window, "Restekiste", ex.Message, true); } } else { var liste = new List <EinzelteilExportDto>(); foreach (var item in ResteListe) { var einzelteil = new EinzelteilExportDto { Guid = item.Guid, Komponente = item.Komponente, Hersteller = item.Hersteller, Beschreibung = item.Beschreibung, Groesse = item.Groesse, Jahr = item.Jahr, DatenbankId = item.DatenbankId, DatenbankLink = item.DatenbankLink, Preis = item.Preis, Gewicht = item.Gewicht, DokumentenListe = new List <DateiDto>() }; if (item.IsNeueKomponente) { var cachedItem = _dateiCache.FirstOrDefault(teil => teil.Item1 == einzelteil.Guid); if (cachedItem != null) { einzelteil.DokumentenListe.AddRange(cachedItem.Item2); } } else { var dateiListe = new List <DateiDto>(); PluginManager.DbManager.GetDateiInfos(item.Guid, ref dateiListe); einzelteil.DokumentenListe.AddRange(dateiListe); } liste.Add(einzelteil); } PluginManager.ExportManager.ExportKomponenten(new WindowInteropHelper(window).Handle, "Restekiste", CsvFormatter.GetFormattetRestekiste(ResteListe), liste); } }