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); }
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)); }
public DateIndexNameProcessorDescriptor <T> DateRounding(DateRounding dateRounding) => Assign(a => a.DateRounding = dateRounding);