public async Task <ActionResult> TransferMoneyDialog(TransferModel model) { var viewmodel = new TransferMoneyDialogViewModel() { Wallets = _walletlist, SelectedMerchant = model.SelectedMerchant, SelectedPaymentRequests = model.SelectedPaymentRequests }; return(View(viewmodel)); }
public async Task <ActionResult> TransferMoney(TransferMoneyDialogViewModel vm) { var destinationaddress = _walletlist.Wallets.FirstOrDefault(w => w.Address == vm.SelectedWallet); if (!string.IsNullOrEmpty(vm.ManualWalletAddress)) { destinationaddress = new LykkePayWalletSettings() { Address = vm.ManualWalletAddress } } ; try { if (vm.SelectedPaymentRequests.Count == 0) { return(this.JsonFailResult("Error: needs to select payment request", ErrorMessageAnchor)); } var request = new BtcFreeTransferRequest(); request.DestAddress = destinationaddress.Address; var sources = new List <BtcTransferSourceInfo>(); foreach (var item in vm.SelectedPaymentRequests) { var sourceinfo = new BtcTransferSourceInfo(); sourceinfo.Address = item.PaymentRequest.WalletAddress; sourceinfo.Amount = Convert.ToDecimal(item.Amount); sources.Add(sourceinfo); } request.Sources = sources; await _payInternalClient.BtcFreeTransferAsync(request); return(this.JsonRequestResult("#transfersList", Url.Action("TransfersList"), new TransfersPageViewModel() { SelectedMerchant = vm.SelectedMerchant, SelectedAsset = "None" })); } catch (DefaultErrorResponseException ex) { if (ex.InnerException != null) { var content = JsonConvert.DeserializeObject <ErrorResponse>(((Refit.ApiException)ex.InnerException).Content); return(this.JsonFailResult(content.ErrorMessage, ErrorMessageAnchor)); } else { return(this.JsonFailResult(ex.Message, ErrorMessageAnchor)); } } }