mirror of
https://github.com/nsnail/Ocelot.git
synced 2025-06-19 12:38:15 +08:00
added houses
This commit is contained in:
@ -23,6 +23,8 @@
|
||||
DownstreamSchemeNullOrEmptyError,
|
||||
DownstreamHostNullOrEmptyError,
|
||||
ServicesAreNullError,
|
||||
ServicesAreEmptyError
|
||||
ServicesAreEmptyError,
|
||||
UnableToFindServiceProviderError,
|
||||
UnableToFindLoadBalancerError
|
||||
}
|
||||
}
|
||||
|
@ -6,7 +6,7 @@ using Ocelot.Responses;
|
||||
|
||||
namespace Ocelot.LoadBalancer.LoadBalancers
|
||||
{
|
||||
public class LoadBalancerHouse
|
||||
public class LoadBalancerHouse : ILoadBalancerHouse
|
||||
{
|
||||
private readonly Dictionary<string, ILoadBalancer> _loadBalancers;
|
||||
|
||||
@ -17,7 +17,17 @@ namespace Ocelot.LoadBalancer.LoadBalancers
|
||||
|
||||
public Response<ILoadBalancer> Get(string key)
|
||||
{
|
||||
return new OkResponse<ILoadBalancer>(_loadBalancers[key]);
|
||||
ILoadBalancer loadBalancer;
|
||||
|
||||
if(_loadBalancers.TryGetValue(key, out loadBalancer))
|
||||
{
|
||||
return new OkResponse<ILoadBalancer>(_loadBalancers[key]);
|
||||
}
|
||||
|
||||
return new ErrorResponse<ILoadBalancer>(new List<Ocelot.Errors.Error>()
|
||||
{
|
||||
new UnableToFindLoadBalancerError($"unabe to find load balancer for {key}")
|
||||
});
|
||||
}
|
||||
|
||||
public Response Add(string key, ILoadBalancer loadBalancer)
|
||||
|
@ -0,0 +1,12 @@
|
||||
using Ocelot.Errors;
|
||||
|
||||
namespace Ocelot.LoadBalancer.LoadBalancers
|
||||
{
|
||||
public class UnableToFindLoadBalancerError : Errors.Error
|
||||
{
|
||||
public UnableToFindLoadBalancerError(string message)
|
||||
: base(message, OcelotErrorCode.UnableToFindLoadBalancerError)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
12
src/Ocelot/ServiceDiscovery/IServiceProviderHouse.cs
Normal file
12
src/Ocelot/ServiceDiscovery/IServiceProviderHouse.cs
Normal file
@ -0,0 +1,12 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Ocelot.Responses;
|
||||
|
||||
namespace Ocelot.ServiceDiscovery
|
||||
{
|
||||
public interface IServiceProviderHouse
|
||||
{
|
||||
Response<IServiceProvider> Get(string key);
|
||||
Response Add(string key, IServiceProvider serviceProvider);
|
||||
}
|
||||
}
|
34
src/Ocelot/ServiceDiscovery/ServiceProviderHouse.cs
Normal file
34
src/Ocelot/ServiceDiscovery/ServiceProviderHouse.cs
Normal file
@ -0,0 +1,34 @@
|
||||
using System.Collections.Generic;
|
||||
using Ocelot.Responses;
|
||||
|
||||
namespace Ocelot.ServiceDiscovery
|
||||
{
|
||||
public class ServiceProviderHouse : IServiceProviderHouse
|
||||
{
|
||||
private Dictionary<string, Ocelot.ServiceDiscovery.IServiceProvider> _serviceProviders;
|
||||
|
||||
public ServiceProviderHouse()
|
||||
{
|
||||
_serviceProviders = new Dictionary<string, Ocelot.ServiceDiscovery.IServiceProvider>();
|
||||
}
|
||||
|
||||
public Response<IServiceProvider> Get(string key)
|
||||
{
|
||||
IServiceProvider serviceProvider;
|
||||
if(_serviceProviders.TryGetValue(key, out serviceProvider))
|
||||
{
|
||||
return new OkResponse<Ocelot.ServiceDiscovery.IServiceProvider>(serviceProvider);
|
||||
}
|
||||
|
||||
return new ErrorResponse<IServiceProvider>(new List<Ocelot.Errors.Error>()
|
||||
{
|
||||
new UnableToFindServiceProviderError($"unabe to find service provider for {key}")
|
||||
});
|
||||
}
|
||||
public Response Add(string key, IServiceProvider serviceProvider)
|
||||
{
|
||||
_serviceProviders[key] = serviceProvider;
|
||||
return new OkResponse();
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,12 @@
|
||||
using Ocelot.Errors;
|
||||
|
||||
namespace Ocelot.ServiceDiscovery
|
||||
{
|
||||
public class UnableToFindServiceProviderError : Error
|
||||
{
|
||||
public UnableToFindServiceProviderError(string message)
|
||||
: base(message, OcelotErrorCode.UnableToFindServiceProviderError)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user