public async Task <IActionResult> Refund(RefundViewModel model) { var user = await userManager.GetUserAsync(User); if (user == null) { throw new ApplicationException($"Unable to load user with ID '{userManager.GetUserId(User)}'."); } ViewData["Message"] = ""; var added = refundRepository.AddRefund(new Refund { Address = model.Address, Amount = model.Amount, Done = false }); var bc = await blockchain.InvokeContractRequestRefund(NETWORK_TYPE.TESTNET, user.Wif, user.ScriptHash, 10, 2); if (bc) { if (added) { ViewData["Message"] = "Transaction and db added"; return(View(model)); } ViewData["Message"] = "transaction done, db fail"; return(View(model)); } ViewData["Message"] = added ? "Refund was requested (only db)" : "Failed to request"; return(View(model)); }