コード例 #1
0
        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;
            }
        }
コード例 #2
0
        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());
            }
        }
コード例 #3
0
 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);
     }
 }
コード例 #4
0
 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;
     }
 }
コード例 #5
0
        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);
            }
        }
コード例 #6
0
    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);
    }
コード例 #7
0
        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);
            }
        }