i think the TimePeriodChain should recalculate the duration and other properties when the child period get moved or expanded.
for example :
TimeRange range1 = new TimeRange(DateTime.Now.Date, TimeSpan.FromDays(10)); TimeRange range2 = new TimeRange(DateTime.Now.Date.AddDays(5), TimeSpan.FromDays(2)); TimePeriodChain chain = new TimePeriodChain(); range1.ExpandEndTo(DateTime.Now.Date.AddDays(15));
after running this code the duration should be 17days but now it says 12. which is now correct.