diff --git a/Consul/GoDuration.cs b/Consul/GoDuration.cs index 9909e39cd80c..17cfe028fae2 100644 --- a/Consul/GoDuration.cs +++ b/Consul/GoDuration.cs @@ -28,12 +28,12 @@ namespace Consul /// public class Duration { - public const ulong Nanosecond = Microsecond/1000; - public const ulong Microsecond = Millisecond/1000; - public const ulong Millisecond = 1; - public const ulong Second = 1000*Millisecond; - public const ulong Minute = 60*Second; - public const ulong Hour = 60*Minute; + public const double Nanosecond = Microsecond / 1000; + public const double Microsecond = Millisecond / 1000; + public const double Millisecond = 1; + public const double Second = 1000 * Millisecond; + public const double Minute = 60 * Second; + public const double Hour = 60 * Minute; public static Dictionary UnitMap = new Dictionary() { @@ -49,6 +49,10 @@ public class Duration public static string ToDuration(TimeSpan ts) { + if (ts == TimeSpan.Zero) + { + return "0"; + } var outDuration = new StringBuilder(); if (ts.TotalSeconds < 1) { @@ -56,15 +60,15 @@ public static string ToDuration(TimeSpan ts) } else { - if ((int) ts.TotalHours > 0) + if ((int)ts.TotalHours > 0) { outDuration.Append(ts.TotalHours.ToString("#h")); } - if ((int) ts.TotalMinutes > 0) + if ((int)ts.TotalMinutes > 0) { outDuration.Append(ts.Minutes.ToString("#m")); } - if ((int) ts.TotalSeconds > 0) + if ((int)ts.TotalSeconds > 0) { outDuration.Append(ts.Seconds.ToString("#")); } @@ -94,7 +98,7 @@ public static TimeSpan Parse(string value) ulong result; if (ulong.TryParse(value, out result)) { - return TimeSpan.FromTicks((long) (result/100)); + return TimeSpan.FromTicks((long)(result / 100)); } var matches = Regex.Matches(value, pattern); @@ -111,7 +115,7 @@ public static TimeSpan Parse(string value) { if (UnitMap.ContainsKey(match.Groups[2].Value)) { - time += res*UnitMap[match.Groups[2].Value]; + time += res * UnitMap[match.Groups[2].Value]; } else { diff --git a/Consul/JsonConverters.cs b/Consul/JsonConverters.cs index a4772ea367d3..6f6339b60560 100644 --- a/Consul/JsonConverters.cs +++ b/Consul/JsonConverters.cs @@ -25,18 +25,18 @@ public class NanoSecTimespanConverter : JsonConverter { public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { - serializer.Serialize(writer, ((TimeSpan) value).TotalMilliseconds*1000, typeof (long)); + serializer.Serialize(writer, (long)((TimeSpan)value).TotalMilliseconds * 1000000, typeof(long)); } public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) { - return Duration.Parse((string) serializer.Deserialize(reader, typeof (string))); + return Duration.Parse((string)serializer.Deserialize(reader, typeof(string))); } public override bool CanConvert(Type objectType) { - if (objectType == typeof (TimeSpan)) + if (objectType == typeof(TimeSpan)) { return true; } @@ -48,18 +48,18 @@ public class DurationTimespanConverter : JsonConverter { public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { - serializer.Serialize(writer, Duration.ToDuration((TimeSpan) value)); + serializer.Serialize(writer, Duration.ToDuration((TimeSpan)value)); } public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) { - return Duration.Parse((string) serializer.Deserialize(reader, typeof (string))); + return Duration.Parse((string)serializer.Deserialize(reader, typeof(string))); } public override bool CanConvert(Type objectType) { - if (objectType == typeof (TimeSpan)) + if (objectType == typeof(TimeSpan)) { return true; } diff --git a/Consul/KV.cs b/Consul/KV.cs index 2440d0a89239..076fa304bf55 100644 --- a/Consul/KV.cs +++ b/Consul/KV.cs @@ -262,7 +262,7 @@ public WriteResult Acquire(KVPair p) /// A write result indicating if the acquisition attempt succeeded public WriteResult Acquire(KVPair p, WriteOptions q) { - var req = _client.CreateWriteRequest(string.Format("/v1/kv/{0}", p.Key), q); + var req = _client.CreateWriteRequest(string.Format("/v1/kv/{0}", p.Key), p.Value, q); if (p.Flags > 0) { req.Params["flags"] = p.Flags.ToString();