示例#1
0
        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;
            }
        }
示例#3
0
 internal void SetNext(PeriodCardsStatus next)
 {
     _next = next;
 }
示例#4
0
 internal void SetPrevious(PeriodCardsStatus prev)
 {
     _previous = prev;
 }