public AccountModule(IRepository <Account> accountRepository, BankCardModule bankCardModule, TransactionModule transactionModule, ClientModule clientModule)
 {
     this.accountRepository = accountRepository;
     this.bankCardModule    = bankCardModule;
     this.transactionModule = transactionModule;
     this.clientModule      = clientModule;
 }
 public AccountModule(IRepository<Account> accountRepository, BankCardModule bankCardModule, TransactionModule transactionModule, ClientModule clientModule)
 {
     this.accountRepository = accountRepository;
     this.bankCardModule = bankCardModule;
     this.transactionModule = transactionModule;
     this.clientModule = clientModule;
 }
        public BankCardController()
        {
            unitOfWork = new InMemoryUnitOfWork(MvcApplication.DataStore);
            var accountRepository = unitOfWork.GetRepository<Account>();
            var clientModule = new ClientModule(unitOfWork.GetRepository<Client>());
            var transactionModule = new TransactionModule(unitOfWork.GetRepository<Transaction>());

            bankCardModule = new BankCardModule(unitOfWork.GetRepository<BankCard>());
            accountModule = new AccountModule(accountRepository, bankCardModule, transactionModule, clientModule);
        }
        private static BankCardViewModel BuildViewModel(BankCardModule bankCardModule, AccountModule accountModule, BankCard bankCard)
        {
            var bankAccount = accountModule.Get(bankCard.AccountId);

            return new BankCardViewModel
            {
                Id = bankCard.Id,
                AccountNumber = bankAccount.AccountNumber,
                Status = bankCard.Disabled ? "Disabled" : "Active",
                Disabled = bankCard.Disabled
            };
        }
        public static IEnumerable<BankCardViewModel> Build(BankCardModule bankCardModule, AccountModule accountModule)
        {
            IEnumerable<BankCard> bankCards = bankCardModule.GetAll();

            return bankCards.Select(bankCard => BuildViewModel(bankCardModule, accountModule, bankCard));
        }