Example #1
0
        /// <summary>
        /// Sends BTC to the receipient address, as long as the following conditions are met:
        /// 1. Entered amount is Valid
        /// 2. There are sufficient funds
        /// 3. Receipient address is valid
        /// 4. Password is correct
        /// </summary>
        private async void ExecuteSendBtc()
        {
            
            if (AddressValid() && AmountBtcOK() && EnoughFunds() && PasswordCorrect())
            {
                Money AmountToSend = Money.Parse(AmountBtc);
                                
                var readyTx = _wallet.BuildTransaction(ReceipientAddress, AmountToSend, AmountFee);
                var networkChoice = Network.GetNetworkFromBase58Data(ReceipientAddress);
                string titleConfirm;
                string messageConfirm;
                //PROMPT USER FOR CONFIRMATION
                if (networkChoice.Equals(Network.TestNet))
                {
                    
                    titleConfirm = TextTools.RetrieveStringFromResource("Send_Dialog_Confirm_Title");
                    messageConfirm = TextTools.RetrieveStringFromResource("Send_Dialog_Confirm_Message_Testnet")
                        .Replace("*btc_amount*", AmountBtc)
                        .Replace("*btc_symbol*", Global.VML.UiSettings.Symbol)
                        .Replace("*address*", ReceipientAddress);

                }
                else
                {

                    titleConfirm = TextTools.RetrieveStringFromResource("Send_Dialog_Confirm_Title");
                    messageConfirm = TextTools.RetrieveStringFromResource("Send_Dialog_Confirm_Message_Mainnet")
                        .Replace("*btc_amount*", AmountBtc)
                        .Replace("*btc_symbol*", Global.VML.UiSettings.Symbol)
                        .Replace("*symbol*", Global.VML.Currency.ActiveSymbol)
                        .Replace("*curr_amount*", AmountCurr)
                        .Replace("*curr*", Global.VML.Currency.ActiveCurrency)
                        .Replace("*address*", ReceipientAddress);
                }
                
                var result = await _sview.ShowMessageAsync(titleConfirm, messageConfirm, MessageDialogStyle.AffirmativeAndNegative);
                if (result.Equals(MessageDialogResult.Affirmative))
                {
                    var sendAttempt = await _wallet.SendBitcoin(readyTx);
                    if (sendAttempt.Equals(true))
                    {
                        string titleSuccess = TextTools.RetrieveStringFromResource("Send_Dialog_Success_Title");
                        string messageSuccess = TextTools.RetrieveStringFromResource("Send_Dialog_Success_Message");
                        await _sview.ShowMessageAsync(titleSuccess, messageSuccess, MessageDialogStyle.Affirmative);
                        _sview.Close();
                    }
                    else
                    {
                        string titleFailed = TextTools.RetrieveStringFromResource("Send_Dialog_Unsuccess_Title");
                        string messageFailed = TextTools.RetrieveStringFromResource("Send_Dialog_Unsuccess_Message");
                        await _sview.ShowMessageAsync(titleFailed, messageFailed, MessageDialogStyle.Affirmative);
                    }
                        
                }
            }

        }