public Account OpenCredit(double limit, string id, string pwd, double money) { CreditAccount caccount = new CreditAccount(limit, id, pwd, money); accounts.Add(caccount); return(caccount); }
public void EndCredit(ref Account frbAccount, ref CreditAccount account, decimal sum) { frbAccount.Credit += sum; frbAccount.Saldo = Math.Abs(frbAccount.Credit - frbAccount.Debet); account.Credit += sum; account.Saldo = Math.Abs(account.Credit - account.Debet); }
public void СhargePercents(ref Account frbAccount, ref CreditAccount percentAccount, decimal sum) { frbAccount.Credit += sum; frbAccount.Saldo = Math.Abs(frbAccount.Credit - frbAccount.Debet); percentAccount.Credit += sum; percentAccount.Saldo = Math.Abs(percentAccount.Credit - percentAccount.Debet); }
public static Account GetAccount(IAccountConfigOptions config) { Account accnt; switch (config.AccountType) { case AccountType.CHECKING: accnt = new CheckingAccount(config as CheckingAccountConfigOptions); break; case AccountType.SAVINGS: accnt = new SavingsAccount(config as SavingsAccountConfigOptions); break; case AccountType.CREDIT: accnt = new CreditAccount(config as CreditAccountConfigOptions); break; case AccountType.MORTGAGE: accnt = new MortgageAccount(config as MortgageAccountConfigOptions); break; default: throw new InvalidAccountTypeException("Unsupported Account Type"); } return(accnt); }
public void TransferCreditToCashier(ref Account cashAccount, ref CreditAccount account, decimal sum) { account.Credit += sum; account.Saldo = Math.Abs(account.Credit - account.Debet); cashAccount.Debet += sum; cashAccount.Saldo = Math.Abs(cashAccount.Credit - cashAccount.Debet); }
public void PaymentForCredit(ref Account cashAccount, ref CreditAccount account, decimal sum) { cashAccount.Credit += sum; cashAccount.Saldo = Math.Abs(cashAccount.Credit - cashAccount.Debet); account.Debet += sum; account.Saldo = Math.Abs(account.Credit - account.Debet); }
private static void AddAccount() { Console.WriteLine("If you want: credit press 1, debit 2"); if (Console.ReadLine().Equals("1")) { Console.WriteLine("How long you want repay a loan"); Int32.TryParse(Console.ReadLine(), out int timeRepay); Console.WriteLine("How much you want to take"); Decimal.TryParse(Console.ReadLine(), out decimal credit); CreditAccount creditAccount = new CreditAccount(0, timeRepay, credit); id = creditAccount.Id; account = creditAccount; creditAccount.Send += str => { Console.ForegroundColor = ConsoleColor.Yellow; Console.WriteLine(str); Console.ForegroundColor = ConsoleColor.Gray; }; bank.Add(creditAccount); Console.WriteLine($"You succesed creat credit account with id{id}"); } else { Console.WriteLine("How much you want to put"); Decimal.TryParse(Console.ReadLine(), out decimal summ); DepositAccount depositAccount = new DepositAccount(summ, TypeDeposit.Bronze); id = depositAccount.Id; account = depositAccount; bank.Add(depositAccount); Console.WriteLine($"You succesed creat deposit account with id{id}\n"); } }
static void Main(string[] args) { using (Account sAcct = new SavingAccount()) using (Account acAcct = new CreditAccount()) using (CreditAccount cAcct = new CreditAccount()) //With "new" { //if (sAcct is Account) if (sAcct.GetType().Equals(typeof(SavingAccount))) { sAcct.Deposit(100); sAcct.Withdraw(50); Console.WriteLine($"餘額={sAcct.Balance}"); } if (acAcct is CreditAccount) { acAcct.Deposit(200); acAcct.Withdraw(100); Console.WriteLine($"餘額={acAcct.Balance}"); } if (cAcct is CreditAccount) { cAcct.Deposit(300); cAcct.Withdraw(100); Console.WriteLine($"餘額={cAcct.Balance}"); } } Console.ReadKey(); }
public static void AddAccount(string owner, string type) { switch (type) { case "spor": saveAccs = new SavingsAccount(owner); accounts.Add(saveAccs); break; case "sporstud": studSaveAccs = new StudentSavingsAccount(owner); accounts.Add(studSaveAccs); break; case "kred": Console.WriteLine("Kolik peněz: "); decimal money = Convert.ToDecimal(Console.ReadLine()); Console.WriteLine("Na jak dlouho: "); int doba = Convert.ToInt32(Console.ReadLine()); credAccs = new CreditAccount(owner, money, doba); accounts.Add(credAccs); break; default: Console.WriteLine("Špatný typ"); break; } }
public void PaymentForPercents(ref Account cashAccount, ref CreditAccount percentAccount, decimal sum) { cashAccount.Credit += sum; cashAccount.Saldo = Math.Abs(cashAccount.Credit - cashAccount.Debet); percentAccount.Debet += sum; percentAccount.Saldo = Math.Abs(percentAccount.Credit - percentAccount.Debet); }
public void AccountService() { Show("\nAccountService\n" + "1: OpenAccount; 2: OpenCreditAccount; 3: CloseAccount 4: CloseCreditAccount;"); string op = GetInput(); if (op == "1" || op == "2") { Show("id: "); string id = GetInput(); Show("name: "); string name = GetInput(); Show("pwd: "); string pwd = GetInput(); Show("money: "); string strMoney = GetInput(); double money = double.Parse(strMoney); Account account = bank.OpenAccount(id, name, pwd, money, op); if (account != null) { Show("ok"); } else { Show("eeer"); } } else if (op == "3") { Account account = FindAccount("1"); bool ok = bank.CloseAccount(account); if (ok) { Show("ok"); } else { Show("eeer"); } } else if (op == "4") { CreditAccount creditAccount = FindAccount("2") as CreditAccount; bool ok = bank.CloseCreditAccount(creditAccount); if (ok) { Show("ok"); } else { Show("eeer"); } } else { Show("eeer"); } }
public CreditAccount OpenCreditaccount(string id, string pwd, double money, double Creditline) { CreditAccount Creditaccount = new CreditAccount(id, pwd, money, Creditline); Creditaccounts.Add(Creditaccount); return(Creditaccount); }
public CreditAccount OpenCreditAccount(string id, string pwd, double money, double limit) { CreditAccount creditaccount = new CreditAccount(id, pwd, money, limit); accounts.Add((Account)creditaccount); return(creditaccount); }
public async Task AddCreditCard_WithWrongParameters_ExpectFalse() { var optionsBuilder = new DbContextOptionsBuilder <FabricaDBContext>() .UseInMemoryDatabase(Guid.NewGuid().ToString()); var context = new FabricaDBContext(optionsBuilder.Options); var creditAccountService = new CreditAccountsService(context); var owner = new FabricaUser() { Id = "400", UserName = null, NormalizedUserName = null, Email = null, NormalizedEmail = null, PasswordHash = null, SecurityStamp = null, LockoutEnabled = true, FullName = null, Gender = GenderType.Male, IsDeleted = false, }; await context.Users.AddAsync(owner); var ownerCA = new CreditAccount() { AccountId = "2000", AccountOwnerId = owner.Id, AccountOwner = owner, CardNumber = null, AuthNumber = null, Points = 0, Cash = 0, }; await context.CreditAccounts.AddAsync(ownerCA); await context.SaveChangesAsync(); var creditAccountServiceModel = new CreditAccountServiceModel() { AccountId = "2000", AccountOwnerId = owner.Id, AccountOwner = owner, CardNumber = null, AuthNumber = null, Points = 0, Cash = 0, }; var a = creditAccountService.AddCreditCard(creditAccountServiceModel).IsCanceled; var expected = false; var creditAccount = context.CreditAccounts.FirstOrDefaultAsync(x => x.AccountId == "2000").Result; var isExists = creditAccount.CardNumber != null; Assert.True(a == expected); }
public void Credit_IsPaid() { int counter = 3; double beginningBalance = 5000; DateTime expirations = new DateTime(2020, 5, 20); bool isPaid1 = true; CreditAccount ba = new CreditAccount("Bryon", beginningBalance, counter, withdrew, expirations, isPaid1, 3000); ba.CheckIfPaid(isPaid1); }
public void Credit_IsExpired() { int counter = 3; double beginningBalance = 5000; DateTime expirations = new DateTime(2020, 5, 20); CreditAccount ba = new CreditAccount("Bryon", beginningBalance, counter, withdrew, expirations, isPaid, 3000); ba.CheckExpiration(expirations); }
public bool CloseCreditAccount(CreditAccount creditAccount) { int idx = creditAccounts.IndexOf(creditAccount); if (idx < 0) { return(false); } creditAccounts.Remove(creditAccount); return(true); }
public bool CloseCreditAccount(CreditAccount Creaditaccount) { int idx = accounts.IndexOf(Creaditaccount); if (idx < 0) { return(false); } accounts.Remove(Creaditaccount); return(true); }
internal override void ExecuteRequest() { if (!(GetAccount() is CreditAccount)) { return; } CreditAccount account = (CreditAccount)GetAccount(); account.WriteOff(account.Commission); }
public void Credit_DailyAmountLimit() { double withdrew1 = 30000; int counter = 3; double beginningBalance = 5000; CreditAccount ba = new CreditAccount("Bryon", beginningBalance, counter, withdrew1, expiration, isPaid, 4000); ba.AmountLimit(withdrew1); }
public void Credit_IsExpired() { int counter = 3; double beginningBalance = 5000; DateTime expirations = new DateTime(2020, 5, 20); CreditAccount ba = new CreditAccount("Bryon", beginningBalance, counter, withdrew, expirations, isPaid, 3000); //act and assert Assert.That(expirations, Is.Not.EqualTo(DateTime.Now)); }
public void Credit_DailyAmountLimit() { double withdrew1 = 40000; int counter = 3; double beginningBalance = 5000; double withdrewlimit = 40000; CreditAccount ba = new CreditAccount("Bryon", beginningBalance, counter, withdrew1, expiration, isPaid, 4000); ba.AmountLimit(withdrew1); Assert.That(withdrew1, Is.LessThanOrEqualTo(withdrewlimit)); }
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); }
//Credit Accounts private void SeedAccounts() { if (this.context.CreditAccounts.Any()) { return; } var owner = this.context.Users.FirstOrDefault(x => x.UserName == "owner"); var mainAdmin = this.context.Users.FirstOrDefault(x => x.UserName == "bb"); var aa = this.context.Users.FirstOrDefault(x => x.UserName == "aa"); var ownerCA = new CreditAccount() { AccountId = Guid.NewGuid().ToString(), AccountOwnerId = owner.Id, AccountOwner = owner, CardNumber = "2334-3344-3345-2333", AuthNumber = "2333", Points = 2000, Cash = 350, }; var adminCA = new CreditAccount() { AccountId = Guid.NewGuid().ToString(), AccountOwnerId = mainAdmin.Id, AccountOwner = mainAdmin, CardNumber = "4444-5555-6666-7777", AuthNumber = "7777", Cash = 450, Points = 3500, }; var aaCA = new CreditAccount() { AccountId = Guid.NewGuid().ToString(), AccountOwnerId = aa.Id, AccountOwner = aa, CardNumber = "2269-6969-6969-4525", AuthNumber = "4525", Cash = 500, Points = 3000, }; ownerCA.CardNumber = HashCreditCardNumber(ownerCA.CardNumber).Result; adminCA.CardNumber = HashCreditCardNumber(adminCA.CardNumber).Result; aaCA.CardNumber = HashCreditCardNumber(aaCA.CardNumber).Result; this.context.CreditAccounts.Add(ownerCA); this.context.CreditAccounts.Add(adminCA); this.context.CreditAccounts.Add(aaCA); this.context.SaveChanges(); }
public async Task AddCreditCard_SearchingForThisAccountInDatabase_ExpectTrue() { var optionsBuilder = new DbContextOptionsBuilder <FabricaDBContext>() .UseInMemoryDatabase(Guid.NewGuid().ToString()); var context = new FabricaDBContext(optionsBuilder.Options); var creditAccountService = new CreditAccountsService(context); var owner = new FabricaUser() { UserName = "******", NormalizedUserName = "******".ToUpper(), Email = "*****@*****.**", NormalizedEmail = "*****@*****.**".ToUpper(), PasswordHash = "123", SecurityStamp = Guid.NewGuid().ToString(), LockoutEnabled = true, FullName = "Owner owner", Gender = GenderType.Male, IsDeleted = false, }; await context.Users.AddAsync(owner); var ownerCA = new CreditAccount() { AccountId = "2000", AccountOwnerId = owner.Id, AccountOwner = owner, CardNumber = "2334-3344-3345-2333", AuthNumber = "2333", Points = 2000, Cash = 350, }; await context.CreditAccounts.AddAsync(ownerCA); await context.SaveChangesAsync(); var creditAccountServiceModel = new CreditAccountServiceModel() { AccountId = "2000", AccountOwnerId = owner.Id, AccountOwner = owner, CardNumber = "2334-3344-3345-2333", AuthNumber = "2333", Points = 2000, Cash = 350, }; var expected = creditAccountServiceModel.AccountId; var a = context.CreditAccounts.FirstOrDefaultAsync(x => x.AccountId == expected); Assert.Contains(expected, a.Result.AccountId); }
// GET: Credit/Delete/5 public async Task <IActionResult> Delete(int id) { CreditContract contract = await _context.CreditContracts.Include(c => c.Accounts).Include(c => c.User).FirstAsync(c => c.Id == id); CreditContractViewModel vm = _mapper.Map <CreditContractViewModel>(contract); CreditAccount account = contract.Accounts.FirstOrDefault(a => !a.IsForPercents); CreditAccount percentAccount = contract.Accounts.FirstOrDefault(a => a.IsForPercents); vm.CreditAmount = account?.Credit.ToString("F"); vm.CreditPercent = percentAccount?.Saldo.ToString("F"); vm.UserName = string.Format("{0} {1} {2}", contract.User.Surname, contract.User.FirstName, contract.User.SecondName); return(View(vm)); }
public void Credit_Interest() { int counter = 3; double beginningBalance = 5000; DateTime expirations = new DateTime(2020, 5, 20); bool isPaid1 = true; double interest = 300; double payables = 2000 + interest; double paidtotal = 2300; CreditAccount ba = new CreditAccount("Bryon", beginningBalance, counter, withdrew, expirations, isPaid1, paidtotal); Assert.AreEqual(payables, paidtotal); }
public async Task <IActionResult> Pay(int id) { try { CreditContract contract = await _context.CreditContracts .Include(c => c.Credit).FirstOrDefaultAsync(c => c.Id == id); if (contract == null) { return(RedirectToAction("Details", new { id })); } Account frbAccount = await _context.Accounts.FirstAsync(a => a.Name == "frb"); Account cashRegisterAccount = await _context.Accounts.FirstAsync(a => a.Name == "cash"); IEnumerable <CreditAccount> accounts = await _context.CreditAccounts.Where(da => da.CreditContractId == contract.Id).ToListAsync(); CreditAccount account = accounts.First(a => !a.IsForPercents); CreditAccount percentAccount = accounts.First(a => a.IsForPercents); decimal sum = 0; if (contract.Credit.HasAnnuityPayments) { double i = (double)contract.Credit.Rate / 12; double k = (i * Math.Pow(i + 1, contract.Credit.Term)) / (Math.Pow(i + 1, contract.Credit.Term) - 1); sum = (decimal)k * contract.CreditAmount - percentAccount.Saldo; } else { decimal osn = contract.CreditAmount / contract.Credit.Term; decimal proc = (2 * contract.CreditAmount - account.Debet) * contract.Credit.Rate / 365 * 30; sum = osn + proc - percentAccount.Saldo; } PaymentForCredit(ref cashRegisterAccount, ref account, sum); PaymentForPercents(ref cashRegisterAccount, ref percentAccount, percentAccount.Saldo); _context.Accounts.Update(account); _context.Accounts.Update(percentAccount); _context.Accounts.Update(frbAccount); _context.Accounts.Update(cashRegisterAccount); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } catch { return(RedirectToAction("Error", "Home")); } }
public IAccount CreateAccount(Guid bankId, Guid clientId, Bank bank, decimal money = 0) { var account = new CreditAccount(); account.BankId = bankId; account.ClientId = clientId; account.Money = money; account.MinLimit = 0; account.MaxLimit = bank.CreditLimit; account.Commission = bank.Commission; account.AccId = Guid.NewGuid(); return(account); }
private CreditAccount GetAccountInfo(CardListInfo account) { var accountInfo = new CreditAccount() { Name = account.CardName, Club = account.Club1, UserName = account.UserName, CardNumber = Convert.ToString(account.CardNumber), BankAccount = $"{account.BankId}-{account.BankBranchId}-{account.BankAccountId}", BankName = account.BankName }; return(accountInfo); }