private void _signatureExportButton_Click(object sender, RoutedEventArgs e)
{
var item = _signatureListView.SelectedItem as SignatureListViewItem;
if (item == null) return;
var signature = item.Value;
using (System.Windows.Forms.SaveFileDialog dialog = new System.Windows.Forms.SaveFileDialog())
{
dialog.RestoreDirectory = true;
dialog.FileName = signature.ToString();
dialog.DefaultExt = ".signature";
dialog.Filter = "Signature (*.signature)|*.signature";
if (dialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
var fileName = dialog.FileName;
try
{
using (FileStream fileStream = new FileStream(fileName, FileMode.Create))
using (Stream digitalSignatureStream = DigitalSignatureConverter.ToDigitalSignatureStream(signature))
using (var safeBuffer = _bufferManager.CreateSafeBuffer(1024 * 4))
{
int length;
while ((length = digitalSignatureStream.Read(safeBuffer.Value, 0, safeBuffer.Value.Length)) > 0)
{
fileStream.Write(safeBuffer.Value, 0, length);
}
}
}
catch (Exception)
{
}
}
}
}