Exemple #1
0
        /// <summary>
        /// Get a friendly description of the time period.
        /// For example: "Last 14 Days"
        /// </summary>
        /// <returns></returns>
        public string GetDescription()
        {
            var numberOfTimeUnits = _NumberOfTimeUnits.GetValueOrDefault(1);

            string timeUnitText = (_TimeUnit != null) ? _TimeUnit.ConvertToString().PluralizeIf(numberOfTimeUnits != 1) : null;

            if (_Range == TimePeriodRangeSpecifier.Current)
            {
                return(string.Format("{0} {1}", _Range.ConvertToString(), timeUnitText));
            }
            if (_Range == TimePeriodRangeSpecifier.All)
            {
                return("All");
            }
            else if (_Range == TimePeriodRangeSpecifier.DateRange)
            {
                // Get the DateRange description, but only show the time component if Range is less than a full day.
                var dateRange = GetDateRange();

                string dateTimeFormat;

                if (_TimeUnit == TimePeriodUnitSpecifier.Hour)
                {
                    dateTimeFormat = "g";
                }
                else
                {
                    dateTimeFormat = "d";
                }

                return(dateRange.ToStringAutomatic("d", dateTimeFormat));
            }
            else
            {
                // Relative period
                return(string.Format("{0} {1} {2}", _Range.ConvertToString(), numberOfTimeUnits, timeUnitText));
            }
        }