Ocelot/src/Ocelot.Provider.Eureka/EurekaMiddlewareConfigurationProvider.cs

32 lines
1.0 KiB
C#

namespace Ocelot.Provider.Eureka
{
using System.Threading.Tasks;
using Configuration;
using Configuration.Repository;
using Microsoft.Extensions.DependencyInjection;
using Middleware;
using Steeltoe.Discovery.Client;
public class EurekaMiddlewareConfigurationProvider
{
public static OcelotMiddlewareConfigurationDelegate Get = builder =>
{
var internalConfigRepo = builder.ApplicationServices.GetService<IInternalConfigurationRepository>();
var config = internalConfigRepo.Get();
if (UsingEurekaServiceDiscoveryProvider(config.Data))
{
builder.UseDiscoveryClient();
}
return Task.CompletedTask;
};
private static bool UsingEurekaServiceDiscoveryProvider(IInternalConfiguration configuration)
{
return configuration?.ServiceProviderConfiguration != null && configuration.ServiceProviderConfiguration.Type?.ToLower() == "eureka";
}
}
}