/// <summary> /// Set a current period. /// </summary> /// <param name="unit"></param> public void SetToCurrentPeriod(TimePeriodUnitSpecifier unit) { _Range = TimePeriodRangeSpecifier.Current; _TimeUnit = unit; _NumberOfTimeUnits = null; _DateStart = null; _DateEnd = null; }
/// <summary> /// Set a period relative to the current date. /// </summary> /// <param name="range"></param> /// <param name="unit"></param> /// <param name="numberOfTimeUnits"></param> public void SetToRelativePeriod(TimePeriodRangeSpecifier range, TimePeriodUnitSpecifier unit, int numberOfTimeUnits) { _Range = range; _TimeUnit = unit; _NumberOfTimeUnits = numberOfTimeUnits; _DateStart = null; _DateEnd = null; }
/// <summary> /// Set a specific date range. /// </summary> /// <param name="startDate"></param> /// <param name="endDate"></param> public void SetToSpecificDateRange(DateTime?startDate, DateTime?endDate) { _Range = TimePeriodRangeSpecifier.DateRange; _TimeUnit = null; _NumberOfTimeUnits = null; _DateStart = startDate; _DateEnd = endDate; }
/// <summary> /// Set an unbounded range that includes all possible values. /// </summary> public void SetToUnboundedDateRange() { _Range = TimePeriodRangeSpecifier.All; _TimeUnit = null; _NumberOfTimeUnits = null; _DateStart = null; _DateEnd = null; }
/// <summary> /// Parse a delimited string and set the time period properties. /// The delimited string uses an identical format to the SlidingDateRangePicker. /// </summary> /// <param name="value">The value.</param> /// <param name="delimiter">The delimiter.</param> public void FromDelimitedString(string value, string delimiter = "|") { string[] splitValues = (value ?? string.Empty).SplitDelimitedValues(delimiter); if (splitValues.Length > 0) { _Range = splitValues[0].ConvertToEnumOrNull <TimePeriodRangeSpecifier>() ?? TimePeriodRangeSpecifier.All; } else { _Range = TimePeriodRangeSpecifier.All; } if (splitValues.Length > 1) { _NumberOfTimeUnits = splitValues[1].AsIntegerOrNull(); } else { _NumberOfTimeUnits = null; } if (splitValues.Length > 2) { var timeUnit = splitValues[2].ConvertToEnumOrNull <TimePeriodUnitSpecifier>(); _TimeUnit = timeUnit; } else { _TimeUnit = null; } if (splitValues.Length > 3) { _DateStart = splitValues[3].AsDateTime(); } else { _DateStart = null; } if (splitValues.Length > 4) { _DateEnd = splitValues[4].AsDateTime(); } else { _DateEnd = null; } }
/// <summary> /// Initializes a new instance of the <see cref="TimePeriod"/> class. /// </summary> /// <param name="range">The range.</param> /// <param name="unit">The unit.</param> /// <param name="numberOfTimeUnits">The number of time units.</param> public TimePeriod(TimePeriodRangeSpecifier range, TimePeriodUnitSpecifier unit, int numberOfTimeUnits) { this.SetToRelativePeriod(range, unit, numberOfTimeUnits); }