コード例 #1
0
        private WalletBuilder CreateWalletBuilder(Customer customer, Decimal startBalance = 0)
        {
            var builder = new WalletBuilder(_dateTimeProvider);

            builder.SetStartBalance(startBalance);

            if (customer.IsVerified)
            {
                return(builder);
            }

            return(builder
                   .SetTransferAmountLimit(_outLimitForRestricted)
                   .SetWithdrawalAmountLimit(_outLimitForRestricted));
        }
        // By Default create one account with Rub currency
        public async Task <(Wallet wallet, string errorMessage)> CreateWalletAsync(Action <IWalletBuilder> builderOptions)
        {
            var builder = new WalletBuilder();

            builderOptions(builder);
            Wallet newWallet = builder.Build();

            if (!await Repository.Set().AnyAsync(WalletExist(newWallet)))
            {
                await Repository.Set().AddAsync(newWallet);

                await Repository.SaveChangesAsync();

                return(newWallet, errorMessage : string.Empty);
            }

            return(null, "Wallet with this User already exist");
        }
コード例 #3
0
        public void Setup()
        {
            cardBuilderMock = new Mock <ICreditCardBuilder>();

            sutBuilder = new WalletBuilder(cardBuilderMock.Object);
        }