private async void btnSave_Click(object sender, EventArgs e) { ClearErrors(); if (HasErrors()) { return; } StartNewProgressInfo(StringResources.SigningDocument); this.Cursor = Cursors.WaitCursor; bool signed = true; try { _digitalSignature.SignDocument(); StartNewProgressInfo(StringResources.UploadingSignedFiles); _ticket = await Session.GetTikectAsync(); UploadResult result = null; switch (_signatureIndex) { case 0: result = await _dataService.UploadAsync(_ticket, _community.id, String.Empty, _folder.id, String.Empty, String.Empty, _digitalSignature.DocumentId, false, String.Empty, String.Empty, "DokuSignPrinterLocalCertificate", false, new System.IO.FileInfo(_digitalSignature.DocumentSigned)); break; case 1: result = await _dataService.UploadAsync(_ticket, _community.id, String.Empty, _folder.id, String.Empty, String.Empty, _digitalSignature.DocumentId, false, _digitalSignature.BiometricSignature, sigOnline1.CertificatePass, "DokuSignPrinterSystemCertificate", false, new System.IO.FileInfo(_digitalSignature.DocumentSigned)); break; case 2: result = await _dataService.UploadAsync(_ticket, _community.id, String.Empty, _folder.id, String.Empty, String.Empty, _digitalSignature.DocumentId, false, String.Empty, String.Empty, "DokuSignPrinterBiometric", false, new System.IO.FileInfo(_digitalSignature.DocumentSigned)); var sigPositions = _digitalSignature.GetSignaturePositions(); var sigPosition = (SignaturePosition)null; var sigPositionsArgs = new List <DokuFlex.Windows.Common.Services.Data.SignaturePosition>(sigPositions.Count); foreach (int key in sigPositions.Keys) { if (sigPositions.TryGetValue(key, out sigPosition)) { sigPositionsArgs.Add(new DokuFlex.Windows.Common.Services.Data.SignaturePosition() { page = key, x = sigPosition.SigPosX, y = sigPosition.SigPosY }); } } await _dataService.AddImageSignatureAsync(new FileInfo(_digitalSignature.BiometricSignature), new FileInfo(_digitalSignature.SignatureImage), _ticket, result.nodeId, sigPositionsArgs.ToArray()); break; default: break; } if (SelectedUsers.Count > 0) { await _dataService.RequestDocumentSignature(_ticket, result.nodeId, SelectedUsers.Select(u => u.id).ToList()); } try { Directory.Delete(_documentDir, true); } catch (Exception ex) { DokuFlex.Windows.Common.Log.LogFactory.CreateLog().LogError(ex); //Silent exception } ConfigurationManager.Save(); //Save configuration changes. } catch (Exception ex) { DokuFlex.Windows.Common.Log.LogFactory.CreateLog().LogError(ex); signed = false; } finally { HideProgressInfo(); this.Cursor = Cursors.Default; } if (signed) { this.DialogResult = DialogResult.OK; this.Close(); } }