private async void PayAccount() { try { var invoice = (vwInvoicedPayments)dgInvoices.SelectedItem; AccountKey accountKey = (AccountKey)tvWallet.SelectedItem; PayAccountWindow payAccount = new PayAccountWindow(tcBitcoin, accountKey, invoice); if (payAccount.ShowDialog() == true) { Cursor = Cursors.Wait; SpendTx spendTx = await tcBitcoin.PayOutTx(accountKey, payAccount.PaymentAddress, payAccount.AmountToPay, payAccount.MinerRate, payAccount.TxMessage); if (!spendTx.IsSatisfied) { MessageBox.Show(Properties.Resources.UnsatisfiedPayment, payAccount.Title, MessageBoxButton.OK, MessageBoxImage.Error); tcBitcoin.PayOutCancel(spendTx); } else { Cursor = Cursors.Arrow; SpendConfirmWindow spendDialog = new SpendConfirmWindow(spendTx); if (spendDialog.ShowDialog() == true) { Cursor = Cursors.Wait; bool broadcast = await spendTx.Send(); if (broadcast) { if (tcBitcoin.PayAccountBalanceNode(spendTx, invoice.AccountCode, payAccount.CashCodeForChange)) { Refresh(); OnBalance?.Invoke(this, new EventArgs()); } } } else { tcBitcoin.PayOutCancel(spendTx); } } } } catch (Exception err) { MessageBox.Show($"{err.Message}", $"{err.Source}.{err.TargetSite.Name}", MessageBoxButton.OK, MessageBoxImage.Error); } finally { Cursor = Cursors.Arrow; } }
private void MenuItemProperties_Click(object sender, RoutedEventArgs e) { fnChangeResult change = (fnChangeResult)dgChange.SelectedItem; ChangePropertiesWindow propertiesWindow = new ChangePropertiesWindow(change, tcBitcoin); if (propertiesWindow.ShowDialog() == true) { Refresh(); OnBalance?.Invoke(this, new EventArgs()); } }
private void MenuItemDelete_Click(object sender, RoutedEventArgs e) { try { fnChangeResult change = (fnChangeResult)dgChange.SelectedItem; if (tcBitcoin.DeleteReceiptKey(change.PaymentAddress)) { Refresh(); OnBalance?.Invoke(this, new EventArgs()); } } catch (Exception err) { MessageBox.Show($"{err.Message}", $"{err.Source}.{err.TargetSite.Name}", MessageBoxButton.OK, MessageBoxImage.Error); } }
private void MenuItemSync_Click(object sender, RoutedEventArgs e) { try { Cursor = Cursors.Wait; fnChangeResult change = (fnChangeResult)dgChange.SelectedItem; tcBitcoin.GetStatement(change.FullHDPath); Refresh(); OnBalance?.Invoke(this, new EventArgs()); } catch (Exception err) { MessageBox.Show($"{err.Message}", $"{err.Source}.{err.TargetSite.Name}", MessageBoxButton.OK, MessageBoxImage.Error); } finally { Cursor = Cursors.Arrow; } }
private void MenuItemPayIn_Click(object sender, RoutedEventArgs e) { try { fnTxResult txId = (fnTxResult)dgTx.SelectedItem; PayInWindow payIn = new PayInWindow(tcBitcoin, txId); if (payIn.ShowDialog() == true) { if (tcBitcoin.TxPayIn(txId.PaymentAddress, txId.TxId, payIn.AccountCode, payIn.CashCode, payIn.PaidOn, payIn.PaymentReference)) { Refresh(); OnBalance?.Invoke(this, new EventArgs()); } } } catch (Exception err) { MessageBox.Show($"{err.Message}", $"{err.Source}.{err.TargetSite.Name}", MessageBoxButton.OK, MessageBoxImage.Error); } }
public void SaveScore() { OnBalance?.Invoke(score, specialCoin); if (GameRecord.Instance.maxScore[GameRecord.Instance.currentLevelIndex - 1] < maxScore) { GameRecord.Instance.maxScore[GameRecord.Instance.currentLevelIndex - 1] = maxScore; } if (GameRecord.Instance.specialCoin[GameRecord.Instance.currentLevelIndex - 1] < specialCoin) { GameRecord.Instance.specialCoin[GameRecord.Instance.currentLevelIndex - 1] = specialCoin; } if (GameRecord.Instance.currentLevelIndex == GameRecord.Instance.beingPassedLevel) { GameRecord.Instance.beingPassedLevel++; } GameRecord.Instance.currentLevelIndex++; GameRecord.Instance.Save(GameRoot.GameRecordJsonSavePath); }
private void MenuItemAssignReceipt_Click(object sender, RoutedEventArgs e) { try { AccountKey extendedKey = (AccountKey)tvWallet.SelectedItem; var invoice = (vwInvoicedReceipts)dgInvoices.SelectedItem; AssignKeyWindow assignKey = new AssignKeyWindow(); assignKey.InvoiceNumber = invoice.InvoiceNumber; assignKey.dgReceiptKeys.ItemsSource = tcBitcoin.NodeCash.fnChangeUnassigned(tcBitcoin.CashAccountCode); if (assignKey.ShowDialog() == true) { if (tcBitcoin.AssignReceiptKey(assignKey.KeyName, assignKey.PaymentAddress, assignKey.InvoiceNumber, assignKey.Note)) { Refresh(); OnBalance?.Invoke(this, new EventArgs()); } } } catch (Exception err) { MessageBox.Show($"{err.Message}", $"{err.Source}.{err.TargetSite.Name}", MessageBoxButton.OK, MessageBoxImage.Error); } }