diff --git a/src/Redis/Orleans.Clustering.Redis/Providers/RedisGatewayListProvider.cs b/src/Redis/Orleans.Clustering.Redis/Providers/RedisGatewayListProvider.cs index 2df0e484d3..9a1ac71e0b 100644 --- a/src/Redis/Orleans.Clustering.Redis/Providers/RedisGatewayListProvider.cs +++ b/src/Redis/Orleans.Clustering.Redis/Providers/RedisGatewayListProvider.cs @@ -7,44 +7,37 @@ using System.Linq; using Microsoft.Extensions.Options; -namespace Orleans.Clustering.Redis -{ - internal class RedisGatewayListProvider : IGatewayListProvider - { - private readonly RedisMembershipTable _table; - private readonly GatewayOptions _gatewayOptions; - - public RedisGatewayListProvider(RedisMembershipTable table, IOptions options) - { - _gatewayOptions = options.Value; - _table = table; - } - - public TimeSpan MaxStaleness => _gatewayOptions.GatewayListRefreshPeriod; +namespace Orleans.Clustering.Redis; - public bool IsUpdatable => true; +internal sealed class RedisGatewayListProvider(RedisMembershipTable table, IOptions options) : IGatewayListProvider +{ + private readonly RedisMembershipTable _table = table; + private readonly GatewayOptions _gatewayOptions = options.Value; - public async Task> GetGateways() - { - if (!_table.IsInitialized) - { - await _table.InitializeMembershipTable(true); - } + public TimeSpan MaxStaleness => _gatewayOptions.GatewayListRefreshPeriod; - var all = await _table.ReadAll(); - var result = all.Members - .Where(x => x.Item1.Status == SiloStatus.Active && x.Item1.ProxyPort != 0) - .Select(x => - { - x.Item1.SiloAddress.Endpoint.Port = x.Item1.ProxyPort; - return x.Item1.SiloAddress.ToGatewayUri(); - }).ToList(); - return result; - } + public bool IsUpdatable => true; - public async Task InitializeGatewayListProvider() + public async Task> GetGateways() + { + if (!_table.IsInitialized) { await _table.InitializeMembershipTable(true); } + + var all = await _table.ReadAll(); + var result = all.Members + .Where(x => x.Item1.Status == SiloStatus.Active && x.Item1.ProxyPort != 0) + .Select(x => + { + var entry = x.Item1; + return SiloAddress.New(entry.SiloAddress.Endpoint.Address, entry.ProxyPort, entry.SiloAddress.Generation).ToGatewayUri(); + }).ToList(); + return result; + } + + public async Task InitializeGatewayListProvider() + { + await _table.InitializeMembershipTable(true); } } \ No newline at end of file