Пример #1
0
        /// <summary>
        /// Returns starttime for this navigatable. Taking snapping into account
        /// </summary>
        /// <param name="timeNavigatable"></param>
        /// <param name="mode">Custom snapping mode to use</param>
        /// <param name="start">Start time of selected range</param>
        /// <param name="end">End time of selected range</param>
        /// <returns>Start time to send to navigatable. This might be a snapped value of <para>start</para></returns>
        public static DateTime GetStartTime(ITimeNavigatable timeNavigatable, SnappingMode mode, DateTime start, DateTime? end)
        {
            //No snapping is easy
            if (mode == SnappingMode.None)
            {
                return start;
            }

            IEnumerable<DateTime> dateTimes = timeNavigatable.Times;

            DateTime? startTime;

            if (mode == SnappingMode.Interval)
            {
                startTime = GetFirstTimeLeftOfValue(dateTimes, start);
            }
            else
            {
                startTime = GetFirstTimeInRange(dateTimes, start, end);
            }
            return startTime != null ? startTime.Value : GetNearestDefinedTime(dateTimes, start);
        }
Пример #2
0
        /// <summary>
        /// Returns starttime for this navigatable. Taking snapping into account
        /// </summary>
        /// <param name="timeNavigatable"></param>
        /// <param name="mode">Custom snapping mode to use</param>
        /// <param name="start">Start time of selected range</param>
        /// <param name="end">End time of selected range</param>
        /// <returns>Start time to send to navigatable. This might be a snapped value of <para>start</para></returns>
        public static DateTime GetStartTime(ITimeNavigatable timeNavigatable, SnappingMode mode, DateTime start, DateTime?end)
        {
            //No snapping is easy
            if (mode == SnappingMode.None)
            {
                return(start);
            }

            IEnumerable <DateTime> dateTimes = timeNavigatable.Times;

            DateTime?startTime;

            if (mode == SnappingMode.Interval)
            {
                startTime = GetFirstTimeLeftOfValue(dateTimes, start);
            }
            else
            {
                startTime = GetFirstTimeInRange(dateTimes, start, end);
            }
            return(startTime != null ? startTime.Value : GetNearestDefinedTime(dateTimes, start));
        }
Пример #3
0
        /// <summary>
        /// Returns end for this navigatable. Taking snapping into account
        /// </summary>
        /// <param name="timeNavigatable"></param>
        /// <param name="start">Start time of selected range</param>
        /// <param name="end">End time of selected range</param>
        /// <returns>End time to send to navigatable. This might be a snapped value of <para>end</para></returns>
        public static DateTime GetEndTime(ITimeNavigatable timeNavigatable, DateTime start, DateTime end)
        {
            //No snapping is easy
            if (timeNavigatable.SnappingMode == SnappingMode.None)
            {
                return(end);
            }
            //snapping stuff
            IEnumerable <DateTime> dateTimes = timeNavigatable.Times;

            DateTime?endTime;

            if (timeNavigatable.SnappingMode == SnappingMode.Interval)
            {
                endTime = GetFirstTimeLeftOfValue(dateTimes, end);
            }
            else
            {
                endTime = GetLastTimeInRange(dateTimes, start, end);
            }

            return(endTime != null ? endTime.Value : GetNearestDefinedTime(dateTimes, end));
        }
Пример #4
0
        /// <summary>
        /// Returns end for this navigatable. Taking snapping into account
        /// </summary>
        /// <param name="timeNavigatable"></param>
        /// <param name="start">Start time of selected range</param>
        /// <param name="end">End time of selected range</param>
        /// <returns>End time to send to navigatable. This might be a snapped value of <para>end</para></returns>
        public static DateTime GetEndTime(ITimeNavigatable timeNavigatable, DateTime start, DateTime end)
        {
            //No snapping is easy
            if (timeNavigatable.SnappingMode == SnappingMode.None)
            {
                return end;
            }
            //snapping stuff
            IEnumerable<DateTime> dateTimes = timeNavigatable.Times;

            DateTime? endTime;

            if (timeNavigatable.SnappingMode == SnappingMode.Interval)
            {
                endTime = GetFirstTimeLeftOfValue(dateTimes, end);
            }
            else
            {
                endTime = GetLastTimeInRange(dateTimes, start, end);
            }

            return endTime != null ? endTime.Value : GetNearestDefinedTime(dateTimes, end);
        }
Пример #5
0
 /// <summary>
 /// Returns starttime for this navigatable. Taking snapping into account
 /// </summary>
 /// <param name="timeNavigatable"></param>
 /// <param name="start">Start time of selected range</param>
 /// <param name="end">End time of selected range</param>
 /// <returns>Start time to send to navigatable. This might be a snapped value of <para>start</para></returns>
 public static DateTime GetStartTime(ITimeNavigatable timeNavigatable, DateTime start, DateTime? end)
 {
     return GetStartTime(timeNavigatable, timeNavigatable.SnappingMode, start, end);
 }
Пример #6
0
 /// <summary>
 /// Returns starttime for this navigatable. Taking snapping into account
 /// </summary>
 /// <param name="timeNavigatable"></param>
 /// <param name="start">Start time of selected range</param>
 /// <param name="end">End time of selected range</param>
 /// <returns>Start time to send to navigatable. This might be a snapped value of <para>start</para></returns>
 public static DateTime GetStartTime(ITimeNavigatable timeNavigatable, DateTime start, DateTime?end)
 {
     return(GetStartTime(timeNavigatable, timeNavigatable.SnappingMode, start, end));
 }