protected override async Task <ValidationFailure> ValidateRequestAsync(AddClaimRequest request) { var balance = await BlockchainExplorerService.GetTokenBalance(request.ProductAddress); var minimumBalance = ConfigurationManager.GetDecimal("MinimumContractBalance"); if (balance <= minimumBalance) { var message = $"Claiming is not possible. Contract balance is below minimum. Minimum contract balance: {minimumBalance} AIX. Current contract balance {balance} AIX. Product. Product address: {request.ProductAddress}"; Logger.Error(message); EmailSender.SendOutOfBalanceEmail("Claim FAILED", message); return(new ValidationFailure { Reason = ErrorReasons.ContractBalanceBelowMinimum, Message = "Contract balance is below minimum balance." }); } return(new ValidationFailure()); }
protected override async Task <ValidationFailure> ValidateRequestAsync(AddPolicyRequest request) { var walletAddress = ConfigurationManager.GetString("publicKeyInsurance"); var balance = await BlockchainExplorerService.GetEthBalance(walletAddress); var minimumBalance = ConfigurationManager.GetDecimal("MinimumWalletBalance"); if (balance <= minimumBalance) { var message = $"Adding policy not possible. Wallet balance is below minimum. Minimum wallet balance: {minimumBalance} ETH. Current wallet balance {balance} ETH. Wallet addresss: {walletAddress}"; Logger.Error(message); EmailSender.SendOutOfBalanceEmail("Add Policy FAILED", message); return(new ValidationFailure { Reason = ErrorReasons.WalletBalanceBelowMinimum, Message = "Wallet balance is below minimum balance." }); } return(new ValidationFailure()); }