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.AddInstallmente(new Installment(date, fullQuota)); } }