private PeriodCardsStatus generatePeriods(DateTime start, ref DateTime end, TimeGranularity granularity, bool analysisExists, out PeriodCardsStatus lastPeriod, out Dictionary <DateTime, PeriodCardsStatus> result) { PeriodCardsStatus firstPeriod; PeriodCardsStatus period; if (analysisExists) { firstPeriod = _boardAnalysis.Periods.First(); period = _boardAnalysis.Periods.Last(); } else { firstPeriod = new PeriodCardsStatus(_boardAnalysis, start, granularity); period = firstPeriod; } result = new Dictionary <DateTime, PeriodCardsStatus> { { firstPeriod.Start, firstPeriod } }; while (true) { period = (PeriodCardsStatus)period.Next(); _boardAnalysis.Periods.Add(period); result.Add(period.Start, period); if (period.End < end) { continue; } lastPeriod = period; end = lastPeriod.End; break; } return(firstPeriod); }
public void LinkPeriods() { PeriodCardsStatus prev = null; foreach (var period in Periods) { period.SetParent(this); period.SetPrevious(prev); prev?.SetNext(period); prev = period; } }
internal void SetNext(PeriodCardsStatus next) { _next = next; }
internal void SetPrevious(PeriodCardsStatus prev) { _previous = prev; }