public static string FormatDelimitedValues( string value )
{
string[] splitValues = ( value ?? string.Empty ).Split( '|' );
string result = string.Empty;
if ( splitValues.Length == 5 )
{
var slidingDateRangeMode = splitValues[0].ConvertToEnum<SlidingDateRangeType>();
var numberOfTimeUnits = splitValues[1].AsIntegerOrNull() ?? 1;
var timeUnitType = splitValues[2].ConvertToEnumOrNull<TimeUnitType>();
string timeUnitText = timeUnitType != null ? timeUnitType.ConvertToString().PluralizeIf( numberOfTimeUnits != 1 ) : null;
var start = splitValues[3].AsDateTime();
var end = splitValues[4].AsDateTime();
if ( slidingDateRangeMode == SlidingDateRangeType.Current )
{
return string.Format( "{0} {1}", slidingDateRangeMode.ConvertToString(), timeUnitText );
}
else if ( ( SlidingDateRangeType.Last | SlidingDateRangeType.Previous | SlidingDateRangeType.Next | SlidingDateRangeType.Upcoming ).HasFlag( slidingDateRangeMode ) )
{
return string.Format( "{0} {1} {2}", slidingDateRangeMode.ConvertToString(), numberOfTimeUnits, timeUnitText );
}
else
{
// DateRange
var dateRange = SlidingDateRangePicker.CalculateDateRangeFromDelimitedValues( value );
return dateRange.ToStringAutomatic();
}
}
return result;
}