Skip to content

Commit 03f942d

Browse files
authored
Add reload on empty or missing key (#129)
* Add reload on empty or missing key * Clarify SetDate code * Fix on the review
1 parent d9705de commit 03f942d

File tree

2 files changed

+5
-11
lines changed

2 files changed

+5
-11
lines changed

src/Winton.Extensions.Configuration.Consul/ConsulConfigurationProvider.cs

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ private async Task DoLoad(CancellationToken cancellationToken)
8282

8383
if (result.HasValue())
8484
{
85-
SetData(result);
85+
Data = result.ToConfigDictionary(_source.ConvertConsulKVPairToConfig);
8686
}
8787
else if (!_source.Optional)
8888
{
@@ -134,9 +134,9 @@ private async Task PollingLoop(CancellationToken cancellationToken)
134134
{
135135
var result = await GetKvPairs(true, cancellationToken).ConfigureAwait(false);
136136

137-
if (result.HasValue() && result.LastIndex > _lastIndex)
137+
if (result.LastIndex > _lastIndex)
138138
{
139-
SetData(result);
139+
Data = result.ToConfigDictionary(_source.ConvertConsulKVPairToConfig);
140140
OnReload();
141141
}
142142

@@ -154,11 +154,6 @@ private async Task PollingLoop(CancellationToken cancellationToken)
154154
}
155155
}
156156

157-
private void SetData(QueryResult<KVPair[]> result)
158-
{
159-
Data = result.ToConfigDictionary(_source.ConvertConsulKVPairToConfig);
160-
}
161-
162157
private void SetLastIndex(QueryResult result)
163158
{
164159
_lastIndex = result.LastIndex == 0

src/Winton.Extensions.Configuration.Consul/Extensions/KVPairQueryResultExtensions.cs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,12 @@
66
using System.Linq;
77
using System.Net;
88
using Consul;
9-
using Winton.Extensions.Configuration.Consul.Parsers;
109

1110
namespace Winton.Extensions.Configuration.Consul.Extensions
1211
{
1312
internal static class KVPairQueryResultExtensions
1413
{
15-
internal static bool HasValue(this QueryResult<KVPair[]> result)
14+
internal static bool HasValue(this QueryResult<KVPair[]>? result)
1615
{
1716
return result != null
1817
&& result.StatusCode != HttpStatusCode.NotFound
@@ -24,7 +23,7 @@ internal static Dictionary<string, string> ToConfigDictionary(
2423
this QueryResult<KVPair[]> result,
2524
Func<KVPair, IEnumerable<KeyValuePair<string, string>>> convertConsulKVPairToConfig)
2625
{
27-
return (result.Response ?? new KVPair[0])
26+
return (result.Response ?? Array.Empty<KVPair>())
2827
.Where(kvp => kvp.HasValue())
2928
.SelectMany(convertConsulKVPairToConfig)
3029
.ToDictionary(kvp => kvp.Key, kvp => kvp.Value, StringComparer.OrdinalIgnoreCase);

0 commit comments

Comments
 (0)