private void CheckForExcess(BudgetPeriodData periodData) { List <DebtCollectRequest> requests = FormDebtCollectRequests(periodData); int sumDebt = _collector.ProcessDebtCollection(requests); if (sumDebt > 0 && _currentDebt > 0) //have money to pay { int toTake = Math.Min(_currentDebt, sumDebt); _currentDebt -= toTake; _lastPayedDebt = toTake; _currentDebt = Math.Max(_currentDebt, 0); } else if (sumDebt < 0) { _currentDebt -= sumDebt; } }
private List <DebtCollectRequest> FormDebtCollectRequests(BudgetPeriodData pd) { var requests = new List <DebtCollectRequest>(); for (int i = 0; i < pd.RawPeriodData.Count; i++) { var req = new DebtCollectRequest() { Department = _departments.Departments[i], Allocated = pd.DepartmentsAllocatedBudget[i], Spent = pd.DepartmentsSpentMoney[i], Cards = _cardsPeriodManager.GetCardsArrangement(_departments.Departments[i]), Costs = pd.RawPeriodData[i].GetEachResourceMonthCost() }; requests.Add(req); } return(requests); }