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());
        }
Example #2
0
        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());
        }