Ejemplo n.º 1
0
        public async Task <IActionResult> AddCustomerToWallet(AddCustomerToWalletRequestModel request)
        {
            var address = await _walletService.GetWalletAdress(request.CustomerId);

            var addr = address?.RemoveHexPrefix().Trim('0');

            if (!string.IsNullOrEmpty(addr))
            {
                AccountModel accModel = new AccountModel()
                {
                    CustomerId     = request.CustomerId,
                    EthereumAdress = address,
                    Amounts        = new List <Amount>()
                };

                return(await Task.FromResult(Ok(new AddCustomerToWalletResponseModel()
                {
                    Account = accModel
                })));
            }

            address = await _walletService.CreateAndAddAdressToWallet(request.CustomerId);

            AccountModel accountModel = new AccountModel()
            {
                CustomerId     = request.CustomerId,
                EthereumAdress = address,
                Amounts        = new List <Amount>()
            };

            return(await Task.FromResult(Ok(new AddCustomerToWalletResponseModel()
            {
                Account = accountModel
            })));
        }
Ejemplo n.º 2
0
        public async Task <bool> AddCheckCustomer(string CustomerId)
        {
            var ischeckCustomer = await IsCheckCustomer(CustomerId);

            if (ischeckCustomer)
            {
                return(true);
            }

            _account = _account ?? _web3Backend.GetDefaultAccount();
            _web3    = _web3 ?? _web3Backend.GetDefaultWeb3();

            var address = await _walletService.GetWalletAdress(CustomerId);

            var addr = address?.RemoveHexPrefix().Trim('0');

            if (string.IsNullOrEmpty(addr))
            {
                address = await _walletService.CreateAndAddAdressToWallet(CustomerId);
            }

            _checkcontract = _checkcontract ??
                             await _contracts.GetContract("PostdatedCheckManager",
                                                          _config.GetSection("NetworkId").Value);

            CheckModels.AddCustomerInputFunction inputFunc = new CheckModels.AddCustomerInputFunction()
            {
                Address     = address,
                FromAddress = _account.Address
            };

            var handler = _web3.Eth.GetContractTransactionHandler <CheckModels.AddCustomerInputFunction>();
            var result  =
                await handler.SendRequestAndWaitForReceiptAsync(_checkcontract.Address, inputFunc);


            if (result.Status == BigInteger.One)
            {
                return(await Task.FromResult(true));
            }
            else
            {
                return(await Task.FromResult(false));
            }
        }