Example #1
0
    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);
    }
 private void ProcessDepartmentDiff(int diff, DebtCollectRequest r)
 {
     if (diff < 0)
     {
         diff = Math.Abs(diff);
         r.Department.IndebtednessCount++;
         r.Department.ProcessBudgetExceed((float)r.Allocated / r.Spent);
         List <ICard> randomDepCards = r.Cards.OrderBy(x => _random.Next()).ToList();
         var          ddc            = new DepartmentDebtCollector(r.Department, diff, randomDepCards, r.Costs);
         ddc.CheckCard += CheckIndebtednessCount;
         ddc.ProcessCards();
         if (ddc.Diff > 0)
         {
             ddc.ProcessCards(true);
         }
     }
     else
     {
         r.Department.IndebtednessCount = Math.Min(r.Department.IndebtednessCount, DebtCountBorder);
         r.Department.IndebtednessCount--;
     }
 }