private async void SendMoney() { var sendMoneyDialogViewModel = (SendMoneyDialogViewModel)_navigationService.ShowDialog(NavigationDialog.SendMoney); try { await Task.Run(async() => { var amount = NxtLib.Amount.CreateAmountFromNxt(decimal.Parse(Amount)); var ledgerEntry = await _nxtServer.SendMoneyAsync(Contact.GetAddressOrInput(Recipient), amount, GetPlainMessage(), GetEncryptedMessage(), GetEncryptedNoteToSelfMessage()); if ((IsMessageEncryptionEnabled && EncryptMessage.Value) && !string.IsNullOrEmpty(Message)) { ledgerEntry.EncryptedMessage = Message; ledgerEntry.UpdateOverviewMessage(); } await _accountLedgerRepository.AddLedgerEntryAsync(ledgerEntry); await _walletRepository.UpdateBalanceAsync(ledgerEntry.NqtBalance); Messenger.Default.Send(new BalanceUpdatedMessage(ledgerEntry.NqtBalance)); Messenger.Default.Send(new LedgerEntryMessage(ledgerEntry, LedgerEntryMessageAction.Added)); }); sendMoneyDialogViewModel.SetDone(); } catch (NxtException e) { if (e.Message == "Not enough funds") { sendMoneyDialogViewModel.SetError(e.Message); } } ClearFields(); }