public void ProcessContract(Contract contract, int months) { double basicQuota = contract.TotalValue / months; for (int i = 1; i <= months; i++) { DateTime date = contract.Date.AddMonths(i); double updateQuota = basicQuota + _onlinePaymentService.Interest(basicQuota, i); double fullQuota = updateQuota + _onlinePaymentService.PaymentFee(updateQuota); contract.AddIntallments(new Installment(date, fullQuota)); } }