public void StartCountingDaysForCard(ICard card, int currentDay)
 {
     if (_fixed)
     {
         return;
     }
     if (_periodResources.ContainsKey(card)) //add check that end > start
     {
         _periodResources[card].sumDays += _periodResources[card].endDay - _periodResources[card].startDay;
         _periodResources[card].startDay = currentDay;
         _periodResources[card].endDay   = default;
     }
     else
     {
         CardPeriod cp = new CardPeriod();
         cp.startDay = currentDay;
         _periodResources.Add(card, cp);
     }
 }
 public void Fix(int currentDay)
 {
     if (_fixed)
     {
         return;
     }
     _fixed   = true;
     _lastDay = currentDay;
     foreach (ICard card in _periodResources.Keys)
     {
         CardPeriod cp = _periodResources[card];
         if (cp.startDay != default)
         {
             cp.sumDays += (cp.endDay != default ? cp.endDay : currentDay) - cp.startDay;
         }
         _periodResources[card].startDay = default;
         _periodResources[card].endDay   = default;
     }
 }