예제 #1
0
        public DateHistogramFacetDescriptor <T> Interval(DateInterval interval, DateRounding dateRounding)
        {
            var intervalString = Enum.GetName(typeof(DateInterval), interval).ToLower();
            var roundingString = Enum.GetName(typeof(DateRounding), dateRounding).ToLower();

            this._Interval = intervalString + ":" + roundingString;
            return(this);
        }
예제 #2
0
        public DateHistogramFacetDescriptor <T> Interval(DateInterval interval, DateRounding dateRounding)
        {
            var intervalString = interval.GetStringValue();
            var roundingString = dateRounding.GetStringValue();

            Self.Interval = intervalString + ":" + roundingString;
            return(this);
        }
        /// <summary>
        /// Added to support custom date intervals on date histogram facet. Eg: "5s" for 5 seconds interval.
        /// http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/search-facets-date-histogram-facet.html#_interval
        /// </summary>
        /// <param name="interval">Custom interval string</param>
        /// <param name="dateRounding">Date rounding type</param>
        /// <returns></returns>
        public DateHistogramFacetDescriptor <T> Interval(string interval, DateRounding dateRounding)
        {
            var intervalString = interval.ToLowerInvariant();
            var roundingString = Enum.GetName(typeof(DateRounding), dateRounding).ToLowerInvariant();

            Self.Interval = intervalString + ":" + roundingString;
            return(this);
        }
        /// <summary>
        ///     Rounds the current <see cref="DateTime" />to the nearest specified <see cref="interval" />, with the specified
        ///     <see cref="DateRounding" />
        /// </summary>
        public static DateTime RoundTo(this DateTime current, TimeSpan interval, DateRounding rounding)
        {
            if (interval == TimeSpan.Zero)
            {
                return(current);
            }

            switch (rounding)
            {
            case DateRounding.Down:
                return(current.RoundDown(interval));

            case DateRounding.Up:
                return(current.RoundUp(interval));

            default:
                return(current.RoundToNearest(interval));
            }
        }
 /// <summary>
 ///     Rounds the specified <see cref="DateTime" /> to the nearest second
 /// </summary>
 public static DateTime ToNearestSecond(this DateTime current, DateRounding rounding)
 {
     return(current.RoundTo(TimeSpan.FromSeconds(1), rounding));
 }
 /// <summary>
 ///     Rounds the specified <see cref="DateTime" /> to the nearest minute
 /// </summary>
 public static DateTime ToNearestMinute(this DateTime current, DateRounding rounding)
 {
     return(current.RoundTo(TimeSpan.FromMinutes(1), rounding));
 }
예제 #7
0
 public DateIndexNameProcessorDescriptor <T> DateRounding(DateRounding dateRounding) =>
 Assign(a => a.DateRounding = dateRounding);