public async Task OnlyDebitOnce(HttpClient client, Account account) { // Arrange var command = new DebitAccount { AccountId = account.Id, Version = account.Version, Amount = -25 }; // Act var tasks = Enumerable .Range(0, 10) .Select(_ => Task.Run(() => client.PostAsJsonAsync("/debit", command))) .ToArray(); await Task.WhenAll(tasks); var responses = tasks.Select(task => task.Result).ToArray(); // Assert responses .Where(message => message.StatusCode is HttpStatusCode.OK) .Should() .HaveCount(1); responses .Where(message => message.StatusCode is HttpStatusCode.Conflict) .Should() .HaveCount(9); }
public void Show() { var accountHolder = new AccountHolder { FullName = "Ileana Scândură" }; var account = new DebitAccount { AccountHolder = accountHolder, Iban = "RO29RZBR2617696727494934" }; accountHolder.DebitAccounts.Add(account); dataRepository.Insert(accountHolder); account.Deposit(100); unitOfWork.Commit(); accountHolder = dataRepository.Query <AccountHolder>() .Single(ah => ah.Id == accountHolder.Id); System.Console.WriteLine("Debit accounts of {0}:", accountHolder.FullName); foreach (var debitAccount in accountHolder.DebitAccounts) { System.Console.WriteLine("IBAN: {0}, Amount: {1}", debitAccount.Iban, debitAccount.Amount); } }
public async Task <DebitAccount> InsertDebitAccount(Authentication authentication, Account account, Client client) { authentication.Password = _passwordService.Hash(authentication.Password); using (IDbContextTransaction transaction = _context.Database.BeginTransaction()) { _context.Authentications.Add(authentication); await _context.SaveChangesAsync(); client.IdAuthentication = authentication.Id; _context.Clients.Add(client); await _context.SaveChangesAsync(); account.IdClient = client.Id; _context.Accounts.Add(account); await _context.SaveChangesAsync(); var debitAccount = new DebitAccount { IdAccount = account.Id }; _context.DebitAccounts.Add(debitAccount); await _context.SaveChangesAsync(); transaction.Commit(); return(debitAccount); } }
public async Task DecreaseBalance( HttpClient client, Account account, IAccountRepository repository) { // Arrange try { await repository.Create(account); var command = new DebitAccount { AccountId = account.Id, Version = account.Version, Amount = -25 }; // Act var response = await client.PostAsJsonAsync("/debit", command); // Assert response.StatusCode.Should().Be(HttpStatusCode.OK); var result = await response.Content.ReadAsAsync <Contracts.Queries.Account>(); result.Balance.Should().Be(25); } finally { await repository.Delete(account.Id); } }
public void Setup() { bank = new Bank("Tinkoff Bank"); client1 = Client.Builder("Fredi", "Kats").SetAddress("Лесной пр-кт, д. 9").GetClient(); debitAccount1 = new DebitAccount(client1, 10000, 2); bank.AddClient(client1); bank.AddAccountToClient(client1, debitAccount1); }
public void Setup() { _bank = new Bank("Tinkoff Bank"); _client = Client.Builder("Fredi", "Kats").SetAddress("Лесной пр-кт, д. 9").SetPassport("1111223344").GetClient(); _debitAccount = new DebitAccount(_client, 10000, 2); _bank.AddClient(_client); _bank.AddAccountToClient(_client, _debitAccount); }
public void AccountTest(long dollars, long cents) { var DebitAccount = new DebitAccount(SomeCustomer, "A01", new Money(), new Money(dollars, cents)); Assert.IsTrue(DebitAccount.hasSufficientBalance(new Money(dollars, cents))); Assert.IsFalse(DebitAccount.hasSufficientBalance(new Money(dollars, cents + 1))); }
public IAccount CreateAccount(Guid bankId, Guid clientId, Bank bank, decimal money = 0) { var account = new DebitAccount(); account.BankId = bankId; account.ClientId = clientId; account.Money = money; account.Interest = new Interest(Convert.ToDecimal(bank.Interest / 365.0)); account.AccId = Guid.NewGuid(); return(account); }
public void Setup() { _bank = new Bank("Tinkoff Bank"); _client1 = Client.Builder("Fredi", "Kats").SetAddress("Ћесной пр-кт, д. 9").GetClient(); _client2 = Client.Builder("Vlad", "Kazanskiy").SetAddress("¬¤земский переулок, 5-7").SetPassport("1234567890").GetClient(); _debitAccount1 = new DebitAccount(_client1, 10000, 2); _debitAccount2 = new DebitAccount(_client2, 13000, 2); _bank.AddClient(_client1); _bank.AddClient(_client2); _bank.AddAccountToClient(_client1, _debitAccount1); _bank.AddAccountToClient(_client2, _debitAccount2); }
public void Setup() { _bank = new Bank("Tinkoff Bank"); _client = Client.Builder("Fredi", "Kats").SetAddress("Лесной пр-кт, д. 9").SetPassport("1234567890").GetClient(); _debitAccount = new DebitAccount(_client, 10000, 2); _depositAccount = new DepositAccount(_client, 5000, TimeSpan.FromSeconds(5)); _creditAccount = new CreditAccount(_client, 2000, 4000, 2); _bank.AddClient(_client); _bank.AddAccountToClient(_client, _debitAccount); _bank.AddAccountToClient(_client, _depositAccount); _bank.AddAccountToClient(_client, _creditAccount); }
private void execute(OpenDebitAccount operation) { var newAccount = new DebitAccount( operation.customer, operation.bank.generateAccountNumber(), operation.Money ?? new Money(), operation.startingDebit ?? new Money() ); operation.bank.addAccount(newAccount); newAccount.OtherOperations.Add(operation); }
public void Test3() { var client1 = new Client("Cheburashcka", "Cheb", "box", "111"); var bank = new Bank(3.65, 10, 50000, TimeSpan.FromMinutes(1)); var creator1 = new DebitAccountCreator(); bank.OpenBankAccount(client1, creator1, 10000); DebitAccount account = (DebitAccount)client1.BankAccountList[0]; account.AddPercents(); Assert.AreEqual(1.0, account.PercentCash); }
static void Main(string[] args) { var debitCalculator = new DebitAccountWithdrawalFeeCalculator(); WithdrawlAndDepositAccount debitAccount = new DebitAccount(); Atm.DepositMoneyTo(debitAccount, 100); Atm.WithdrawMoneyFrom(debitAccount, 50, debitCalculator); var creditCalculator = new CreditAccountWithdrawalFeeCalculator(); WithdrawlAndDepositAccount creditAccount = new CreditAccount(); Atm.DepositMoneyTo(creditAccount, 100); Atm.WithdrawMoneyFrom(creditAccount, 150, new DummyCalculator()); TestWithdrawal(new DebitAccount()); }
private void DoDebitAccountEvent(DebitAccount detail) { using (var db = new BillingwareDataContext()) { var account = db.Accounts.FirstOrDefault(a => a.AccountNumber == detail.Request.AccountNumber); if (account == null) { return; } account.Balance -= detail.Request.Amount; db.Entry(account).State = EntityState.Modified; db.SaveChanges(); } }
static void TestWithdrawalFromDebitAccount() { // Arrange var Atm = new AutomaticTellerMachine(); var account = new DebitAccount(); var prevAmount = account.Amount; // Act Atm.DepositMoneyTo(account, 50); Atm.WithdrawMoneyFrom(account, 50, new DummyCalculator()); // Assert if (account.Amount == prevAmount) { System.Console.WriteLine("Test passed."); } }
static void Main(string[] args) { IAutomaticTellerMachine atm = new AutomaticTellerMachine(); var debitCalculator = new DebitAccountWithdrawalFeeCalculator(); IWithdrawalAndDepositAccount debitAccount = new DebitAccount(); atm.DepositMoneyTo(debitAccount, 100); atm.WithdrawMoneyFrom(debitAccount, 50, debitCalculator); var creditCalculator = new CreditAccountWithdrawalFeeCalculator(); IWithdrawalAndDepositAccount creditAccount = new CreditAccount(); atm.DepositMoneyTo(creditAccount, 100); atm.WithdrawMoneyFrom(creditAccount, 150, new DummyCalculator()); TestWithdrawalFromDebitAccount(); }
public async Task ConflictIfCommandIsSentTwice(HttpClient client, Account account) { // Arrange var command = new DebitAccount { AccountId = account.Id, Version = account.Version, Amount = -25 }; // Act await client.PostAsJsonAsync("/debit", command); var response = await client.PostAsJsonAsync("/debit", command); // Assert response.StatusCode.Should().Be(HttpStatusCode.Conflict); }
public async Task DecreaseBalance() { // Arrange var command = new DebitAccount { AccountId = account.Id, Version = account.Version, Amount = -25 }; // Act var response = await client.PostAsJsonAsync("/debit", command); // Assert response.StatusCode.Should().Be(HttpStatusCode.OK); var result = await response.Content.ReadAsAsync <Contracts.Queries.Account>(); result.Balance.Should().Be(25); }
public IEnumerable <IAccount> ImportData(string cultureName) { IEnumerable <DataRecord> data = null; var stream = new StreamReader(this.fileName); using (var reader = new CsvHelper.CsvReader(stream, new CultureInfo(cultureName))) { data = reader.GetRecords <DataRecord>().ToList(); } RunOnXboxOnly($"In {nameof(ImportData)}."); var result = new List <IAccount>(); foreach (var item in data) { var accHolder = new AccountHolder(item.IdNo, item.FirstName, item.LastName); var account = new DebitAccount(item.Iban, item.Balance, accHolder); result.Add(account); } return(result); }
public override void SendMoney(double amount, long targetaccountNumber) { DebitAccount debitAccount = Debit; base.SendMoney(amount, targetaccountNumber); double debit = amount + (amount * TaxRatio); if ((balance - debit) >= 0) { debitAccount(debit); //balance -= (amount + (amount * TaxRatio)); Transaction transaction = new Transaction(accountNumber, targetaccountNumber, amount); transaction.direction = "OutGoing"; AddTransaction(transaction); Console.WriteLine("eyyyyyy B" + balance); } else { Console.WriteLine("leeeeee"); throw new Exception("you cant balance < amount "); } }
public void Show() { var accountHolder = new Customer { FirstName = "Ileana", LastName = "Scândură", IdNo = "091203923018", Id = Guid.NewGuid() }; var debitAccount = new DebitAccount { AccountHolderId = accountHolder.Id, Iban = "RO29RZBR2617696727494944" }; var savingsAccount = new SavingsAccount { AccountHolderId = accountHolder.Id, Iban = "RO29RZBR2617696727494946" }; accountHolder.DebitAccounts.Add(debitAccount); accountHolder.SavingsAccounts.Add(savingsAccount); dataRepository.Insert(accountHolder); debitAccount.Deposit(100); unitOfWork.Commit(); System.Console.WriteLine("Debit accounts of {0}:", accountHolder.FullName); foreach (var da in accountHolder.DebitAccounts) { System.Console.WriteLine("IBAN: {0}, Amount: {1}", da.Iban, da.Amount); } }
public static string chargeCurrentAccount(this DebitAccount currentAccount) { // Bussiness Logic return(currentAccount.FormatTransaction()); }
public async Task <IActionResult> CreditAccount(Guid bankAccountId, [FromBody] DebitAccount debitCommand) { await this.debitHandler.Handle(debitCommand); return(NoContent()); }
public static string chargeInvestmentAccount(this DebitAccount investmentAccount) { // Bussiness Logic return(investmentAccount.FormatTransaction()); }
public IActionResult Add(DebitAccount account) { debitAccountRepository.Add(account); return(RedirectToAction("List")); }
public IActionResult Edit(DebitAccount account) { debitAccountRepository.Update(account); return(RedirectToAction("List")); }
public static string chargeSavingsAccount(this DebitAccount savingsAccount) { // Bussiness logic return(savingsAccount.FormatTransaction()); }