Exemple #1
0
        public DateTime?FindEndOfExclusion(DateTime pointInExcludeRange)
        {
            var inExclude = ExcludedRanges.Where(r => r.Begin <= pointInExcludeRange && r.End >= pointInExcludeRange).OrderBy(r => r.End).LastOrDefault();

            if (inExclude != null)
            {
                return(FindExcludeEnd(inExclude));
            }
            else
            {
                return(null);
            }
        }
Exemple #2
0
        private DateTime FindExcludeEnd(DateRange range)
        {
            //К концу дипазона добавлен день, для того чтобы склеивать случаи когда 5 числа заканчивается предыдущий, а 6-го начинается следующий.
            var next = ExcludedRanges.Where(r => r.Begin <= range.End.AddDays(1) && r.End > range.End).OrderBy(r => r.End).LastOrDefault();

            if (next == null)
            {
                return(range.End);
            }
            else
            {
                return(FindExcludeEnd(next));
            }
        }