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;
     }
 }