Beispiel #1
0
        public void CalculateLiabilityTest(
            decimal amount,
            decimal extraMoney,
            int days,
            int daysDelay,
            decimal interestRate,
            decimal liability)
        {
            var payment = new Payment
            {
                Amount  = amount,
                DueDate = DateTime.Now.AddDays(-daysDelay)
            };
            var result = PaymentHelper.CalculateLiability(payment, extraMoney, interestRate, days);

            Assert.IsTrue(Math.Abs(result - liability) < NumericConstants.Eps);
        }
Beispiel #2
0
        public static IEnumerable <Payment> CalculateLiability(this IEnumerable <Payment> data, decimal extraMoney, Deal deal)
        {
            foreach (var payment in data.Where(x => !x.IsPaid).OrderBy(x => x.DueDate))
            {
                if (extraMoney > 0)
                {
                    payment.Liability = PaymentHelper.CalculateLiability(payment, extraMoney, deal.InterestRate, deal.DealPeriod);
                    extraMoney        = 0;
                }
                else
                {
                    payment.Liability = PaymentHelper.CalculateLiability(payment, 0, deal.InterestRate, deal.DealPeriod);
                }
            }

            return(data);
        }