async void ExportFiles(IList lstFiles) { try { int countFiles = 0; System.Windows.Forms.FolderBrowserDialog folderBrowserDialog = null; var lstUpdate = new List <DebtorPaymentFileClient>(); var qrFiles = lstFiles.Cast <DebtorPaymentFileClient>(); foreach (var rec in qrFiles) { #if !SILVERLIGHT countFiles++; if (folderBrowserDialog == null) { folderBrowserDialog = UtilDisplay.LoadFolderBrowserDialog; var dialogResult = folderBrowserDialog.ShowDialog(); if (dialogResult != System.Windows.Forms.DialogResult.OK) { break; } } var filepath = folderBrowserDialog.SelectedPath; if (paymentFormatCache == null) { paymentFormatCache = api.CompanyEntity.GetCache(typeof(Uniconta.DataModel.DebtorPaymentFormat)) ?? await api.CompanyEntity.LoadCache(typeof(Uniconta.DataModel.DebtorPaymentFormat), api); } var paymentFormat = (DebtorPaymentFormatClient)paymentFormatCache.Get(rec.PaymentFormat); if (rec._Filename.EndsWith(".zip")) { if (paymentFormat._ExportFormat == (byte)Uniconta.DataModel.DebtorPaymFormatType.SEPA) { Stream data = new MemoryStream(rec._Data); ZipArchive archive = new ZipArchive(data); foreach (ZipArchiveEntry entry in archive.Entries) { using (var stream = entry.Open()) { var filename = string.Concat(filepath, "\\", entry.FullName); using (var fileStream = new FileStream(filename, FileMode.Create, FileAccess.Write)) { stream.CopyTo(fileStream); } } } } else { File.WriteAllBytes(string.Concat(filepath, @"\", rec._Filename), rec._Data); } } else { File.WriteAllText(string.Concat(filepath, @"\", rec._Filename), Encoding.GetEncoding("iso-8859-1").GetString(rec._Data)); } if (paymentFormat != null && (paymentFormat._ExportFormat == (byte)Uniconta.DataModel.DebtorPaymFormatType.SEPA || paymentFormat._ExportFormat == (byte)Uniconta.DataModel.DebtorPaymFormatType.Iceland)) { rec.StatusInfo = string.Format("({0}) {1}\n{2}", Uniconta.DirectDebitPayment.Common.GetTimeStamp(), Uniconta.ClientTools.Localization.lookup("Exported"), rec._StatusInfo); rec.Status = AppEnums.DebtorPaymentStatus.ToString((int)DebtorPaymentStatus.Ok); lstUpdate.Add(rec); } #endif } if (lstUpdate != null && lstUpdate.Count > 0) { api.UpdateNoResponse(lstUpdate); } if (countFiles != 0) { UnicontaMessageBox.Show(string.Format(Uniconta.ClientTools.Localization.lookup("TotalFilesExported"), countFiles), Uniconta.ClientTools.Localization.lookup("Message")); } } catch (Exception ex) { UnicontaMessageBox.Show(ex.Message, Uniconta.ClientTools.Localization.lookup("Exception")); } }