Ejemplo n.º 1
0
        private bool IsRecurringOnDay(DateTime currentDay, DateTime rangeStart, DateTime rangeEnd, Appointment rootAppointment)
        {
            TimeSpan duration = rootAppointment.EndTime.Subtract(rootAppointment.StartTime);
            DateTime startTime = rootAppointment.GetValidDateTime(new DateTime(currentDay.Year, currentDay.Month, currentDay.Day, rootAppointment.StartTime.Hour, rootAppointment.StartTime.Minute, 0));
            DateTime endTime = rootAppointment.GetValidDateTime(startTime.Add(duration));

            DateTime localStartTime = rootAppointment.GetLocalDateTime(rootAppointment.GetUTCDateTime(startTime));
            DateTime localEndTime = rootAppointment.GetLocalDateTime(rootAppointment.GetUTCDateTime(endTime));

            // If time-zone is not used return false
            if (startTime == localStartTime) return currentDay >= rangeStart;

            return DateTimeHelper.TimePeriodsOverlap(localStartTime, localEndTime, rangeStart, rangeEnd);
        }