BitSharp.Core.Rules.CoreRules.GetMedianPrevHeaderTime C# (CSharp) Method

GetMedianPrevHeaderTime() private method

private GetMedianPrevHeaderTime ( BitSharp.Core.Domain.Chain chain, int height ) : DateTimeOffset
chain BitSharp.Core.Domain.Chain
height int
return DateTimeOffset
        private DateTimeOffset GetMedianPrevHeaderTime(Chain chain, int height)
        {
            if (height == 0)
                return DateTimeOffset.FromUnixTimeSeconds(0);

            var medianTimeSpan = Math.Min(11, height);

            var prevHeaderTimes = chain.Blocks.GetRange(height - medianTimeSpan, medianTimeSpan)
                //TODO pull tester doesn't fail if the sort step is missed
                .OrderBy(x => x.Time).ToList();

            return prevHeaderTimes[prevHeaderTimes.Count / 2].Time;
        }