private void Close() { _input.CountDownTimer?.Dispose(); _input.CountDownTimer = null; _input = null; _taskCompletionSource.SetException(new OperationCanceledException("Transaction Canceled by User.")); _taskCompletionSource = null; StateHasChanged(); }
public Task <bool> PromptForSignaturesAsync(IInvoice invoice) { if (invoice is null) { throw new ArgumentNullException(nameof(invoice)); } _input = new SigningInput() { Invoice = invoice, TransactionInHex = Hex.FromBytes(invoice.TxBytes), StatusMessage = "Waiting for signature(s)...", }; _taskCompletionSource = new TaskCompletionSource <bool>(); StartCountDown(); StateHasChanged(); return(_taskCompletionSource.Task); }
private void SubmitToNetwork() { TryParseSignature(); try { if (_input.PendingSignatureMap != null || (String.IsNullOrWhiteSpace(_input.SignatureInHex) && _input.ConfirmedSignatureMap != null)) { if (_input.ConfirmedSignatureMap != null) { foreach (var signature in _input.ConfirmedSignatureMap.SigPair) { AddSignatureToInvoice(signature); } } if (_input.PendingSignatureMap != null) { foreach (var signature in _input.PendingSignatureMap.SigPair) { AddSignatureToInvoice(signature); } } _input.CountDownTimer?.Dispose(); _input.CountDownTimer = null; _input = null; _taskCompletionSource.SetResult(true); _taskCompletionSource = null; StateHasChanged(); } } catch (Exception ex) { // Reset the whole dialog _input.SignatureInHex = string.Empty; _input.StatusMessage = "An Error Occurred and signatures have been cleared: " + ex.Message; _input.ConfirmedSignatureMap = null; _input.PendingSignatureMap = null; } }