Exemple #1
0
    public Account OpenCredit(double limit, string id, string pwd, double money)
    {
        CreditAccount caccount = new CreditAccount(limit, id, pwd, money);

        accounts.Add(caccount);
        return(caccount);
    }
Exemple #2
0
 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);
 }
Exemple #3
0
 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);
 }
Exemple #4
0
        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);
        }
Exemple #5
0
 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);
 }
Exemple #6
0
 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);
 }
Exemple #7
0
 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");
     }
 }
Exemple #8
0
        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();
        }
Exemple #9
0
        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;
            }
        }
Exemple #10
0
 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");
        }
    }
Exemple #12
0
    public CreditAccount OpenCreditaccount(string id, string pwd, double money, double Creditline)
    {
        CreditAccount Creditaccount = new CreditAccount(id, pwd, money, Creditline);

        Creditaccounts.Add(Creditaccount);

        return(Creditaccount);
    }
Exemple #13
0
    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);
    }
Exemple #14
0
        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);
        }
Exemple #17
0
    public bool CloseCreditAccount(CreditAccount creditAccount)
    {
        int idx = creditAccounts.IndexOf(creditAccount);

        if (idx < 0)
        {
            return(false);
        }
        creditAccounts.Remove(creditAccount);
        return(true);
    }
Exemple #18
0
    public bool CloseCreditAccount(CreditAccount Creaditaccount)
    {
        int idx = accounts.IndexOf(Creaditaccount);

        if (idx < 0)
        {
            return(false);
        }
        accounts.Remove(Creaditaccount);
        return(true);
    }
Exemple #19
0
        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);
        }
Exemple #21
0
      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));
      }
Exemple #22
0
      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));
      }
Exemple #23
0
 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);
 }
Exemple #24
0
        //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();
        }
Exemple #25
0
        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);
        }
Exemple #26
0
        // 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);
        }
Exemple #28
0
        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"));
            }
        }
Exemple #29
0
        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);
        }