internal static string GetQueryParameter(this TimestampPrecision that)
        {
            switch (that)
            {
            case TimestampPrecision.Nanosecond:
                return("ns");

            case TimestampPrecision.Microsecond:
                return("u");

            case TimestampPrecision.Millisecond:
                return("ms");

            case TimestampPrecision.Second:
                return("s");

            case TimestampPrecision.Minute:
                return("m");

            case TimestampPrecision.Hours:
                return("h");

            default:
                throw new ArgumentException("Invalid parameter value.", nameof(that));
            }
        }
        internal static DateTime FromEpochTime(long ticks, TimestampPrecision precision)
        {
            switch (precision)
            {
            case TimestampPrecision.Nanosecond:
                return(Epoch.AddTicks(ticks / 100));

            case TimestampPrecision.Microsecond:
                return(Epoch.AddTicks(ticks * TicksPerMicrosecond));

            case TimestampPrecision.Millisecond:
                return(Epoch.AddMilliseconds(ticks));

            case TimestampPrecision.Second:
                return(Epoch.AddSeconds(ticks));

            case TimestampPrecision.Minute:
                return(Epoch.AddMinutes(ticks));

            case TimestampPrecision.Hours:
                return(Epoch.AddHours(ticks));

            default:
                throw new ArgumentException("Invalid parameter value.", nameof(precision));
            }
        }
        /// <summary>
        /// Returns a long representing the number of ticks (in the given precision) the DateTime is from 1. Jan 1970.
        /// </summary>
        /// <param name="that"></param>
        /// <param name="precision"></param>
        /// <returns></returns>
        public static long ToPrecision(this DateTime that, TimestampPrecision precision)
        {
            switch (precision)
            {
            case TimestampPrecision.Nanosecond:
                return((that - Epoch).Ticks * 100);

            case TimestampPrecision.Microsecond:
                return((that - Epoch).Ticks / TicksPerMicrosecond);

            case TimestampPrecision.Millisecond:
                return((that - Epoch).Ticks / TimeSpan.TicksPerMillisecond);

            case TimestampPrecision.Second:
                return((that - Epoch).Ticks / TimeSpan.TicksPerSecond);

            case TimestampPrecision.Minute:
                return((that - Epoch).Ticks / TimeSpan.TicksPerMinute);

            case TimestampPrecision.Hours:
                return((that - Epoch).Ticks / TimeSpan.TicksPerHour);

            default:
                throw new ArgumentException("Invalid parameter value.", nameof(precision));
            }
        }
Exemple #4
0
        internal InfluxRowContent(IEnumerable <TInfluxRow> dataPoints, Func <TInfluxRow, string> getMeasurementName, TimestampPrecision precision)
        {
            _dataPoints         = dataPoints;
            _getMeasurementName = getMeasurementName;
            _precision          = precision;

            Headers.ContentType = TextMediaType;
        }
Exemple #5
0
 /// <inheritdoc />
 public long ToEpoch(TimestampPrecision precision, DateTime timestamp)
 {
     return(timestamp.ToPrecision(precision));
 }
		public JsonDateTimeConverter(TimestampPrecision prec = TimestampPrecision.Milliseconds)
		{
			Precision = prec;
		}
Exemple #7
0
 public JsonDateTimeConverter(TimestampPrecision prec = TimestampPrecision.Milliseconds)
 {
     Precision = prec;
 }
Exemple #8
0
 /// <inheritdoc />
 public long ToEpoch(TimestampPrecision precision, DateTimeOffset?timestamp)
 {
     return(timestamp.Value.ToPrecision(precision));
 }