public IEnumerable <LocalInterval> GetIntervals(LocalInterval interval = null)
        {
            var maskIntervals    = mask.GetIntervals(interval);
            var contentIntervals = payload.GetIntervals(interval);

            return(TimeMathOld.Intersection(contentIntervals, maskIntervals).OrderBy(i => i.Start));
        }
        public virtual IEnumerable <LocalInterval> GetIntervals(LocalInterval interval, DateTimeZone destinationTimezone)
        {
            var maskIntervals    = mask.GetIntervals(interval, destinationTimezone);
            var contentIntervals = payload.GetIntervals(interval, destinationTimezone);

            return(TimeMathOld.Intersection(contentIntervals, maskIntervals).OrderBy(i => i.Start));
        }
Esempio n. 3
0
        private static IEnumerable <LocalInterval> Not(IEnumerable <LocalInterval> ints)
        {
            var intList = ints.ToList();

            if (intList.Count == 0)
            {
                return new[] { new LocalInterval() }
            }
            ;
            return(TimeMathOld.Not(TimeMathOld.MergeTouching(intList)));
        }
Esempio n. 4
0
        protected virtual IEnumerable <LocalInterval> GetLocalIntervalsBase(LocalInterval interval = null)
        {
            if (interval == null)
            {
                return(mask.Select(i => i.Clone()));
            }
            if (!interval.Start.HasValue || !interval.End.HasValue)
            {
                throw new ArgumentOutOfRangeException("interval", "Cannot request holidays for an unbounded range");
            }

            return(TimeMathOld.Intersection(mask, interval));
        }
 private void EnsureNoOverlappingPeriods()
 {
     // Forgiving for now
     TimeMathOld.MergeTouching(this);
 }