Пример #1
0
        static void Main(string[] args)
        {
            Console.WriteLine("Enter contract data: ");
            Console.Write("Number: ");
            int contractNumber = int.Parse(Console.ReadLine());

            Console.Write("Date (dd/MM/yyyy): ");
            DateTime contractDate = DateTime.ParseExact(Console.ReadLine(), "dd/MM/yyyy", CultureInfo.InvariantCulture);

            Console.Write("Contract amount: ");
            double contractAmount = double.Parse(Console.ReadLine(), CultureInfo.InvariantCulture);

            Console.Write("Number of installments: ");
            int contractInstallments = int.Parse(Console.ReadLine());

            CustContract contract = new CustContract(contractNumber, contractDate, contractAmount, contractInstallments);
            ContractInstallmentGenerateServices services = new ContractInstallmentGenerateServices(new PayPalPaymentOperator(1, 2));

            services.InstallmentGenerate(contract);

            foreach (ContractInstallments installment in contract.InstallmentsList)
            {
                Console.WriteLine(installment);
            }
        }
Пример #2
0
        public void InstallmentGenerate(CustContract contract)
        {
            for (int idx = 1; idx <= contract.Installments; idx++)
            {
                DateTime dueDate           = contract.Date.AddMonths(idx);
                double   installmentAmount = contract.Installments > 0 ? contract.Amount / contract.Installments : 0;

                installmentAmount += (_PaymentOperator.InterestAmount(installmentAmount) * idx);
                installmentAmount += _PaymentOperator.FeeAmount(installmentAmount);

                contract.AddInstallment(new ContractInstallments(dueDate, idx, installmentAmount));
            }
        }