public IActionResult GetMaximumSpendableBalance([FromQuery] WalletMaximumBalanceRequest request) { Guard.NotNull(request, nameof(request)); // Checks the request is valid. if (!this.ModelState.IsValid) { var errors = this.ModelState.Values.SelectMany(e => e.Errors.Select(m => m.ErrorMessage)); return(ErrorHelpers.BuildErrorResponse(HttpStatusCode.BadRequest, "Formatting error", string.Join(Environment.NewLine, errors))); } try { var transactionResult = this.walletTransactionHandler.GetMaximumSpendableAmount(new WalletAccountReference(request.WalletName, request.AccountName), FeeParser.Parse(request.FeeType), request.AllowUnconfirmed); return(this.Json(new MaxSpendableAmountModel { MaxSpendableAmount = transactionResult.maximumSpendableAmount, Fee = transactionResult.Fee })); } catch (Exception e) { return(ErrorHelpers.BuildErrorResponse(HttpStatusCode.BadRequest, e.Message, e.ToString())); } }
public IActionResult GetMaximumSpendableBalance([FromQuery] WalletMaximumBalanceRequest request) { Guard.NotNull(request, nameof(request)); // Checks the request is valid. if (!this.ModelState.IsValid) { return(BuildErrorResponse(this.ModelState)); } try { var transactionResult = this.walletTransactionHandler.GetMaximumSpendableAmount(new WalletAccountReference(request.WalletName, request.AccountName), FeeParser.Parse(request.FeeType), request.AllowUnconfirmed); return(this.Json(new MaxSpendableAmountModel { MaxSpendableAmount = transactionResult.maximumSpendableAmount, Fee = transactionResult.Fee })); } catch (Exception e) { this.logger.LogError("Exception occurred: {0}", e.ToString()); return(ErrorHelpers.BuildErrorResponse(HttpStatusCode.BadRequest, e.Message, e.ToString())); } }
public async Task <IActionResult> GetMaximumSpendableBalance([FromQuery] WalletMaximumBalanceRequest request, CancellationToken cancellationToken = default(CancellationToken)) { return(await this.Execute(request, cancellationToken, async (req, token) => this.Json(await this.walletService.GetMaximumSpendableBalance(request, cancellationToken)))); }