public IEndpoint CreateEndpoint(string name) { if (name == null) { throw new ArgumentNullException(nameof(name)); } _logger.LogInformation("Creating endpoint with name {EndpointName}", name); EndpointFactoryOptions options = _optionsMonitor.Get(name); if(options.EndpointFuncs.Count != 1) { throw new InvalidOperationException("There is no endpoint named that or duplicates of the same name"); } return options.EndpointFuncs[0](_services); }
public IEndpoint CreateEndpoint(string name) { if (name == null) { throw new ArgumentNullException(nameof(name)); } _logger.LogInformation("Creating endpoint with name {EndpointName}", name); EndpointFactoryOptions options = _optionsMonitor.Get(name); if (options.EndpointFuncs.Count == 0) { _logger.LogDebug("Endpoint count: {0}", _optionsMonitor.CurrentValue.EndpointFuncs.Count); throw new InvalidOperationException($"There is no endpoint named [{name}]"); } else if (options.EndpointFuncs.Count > 1) { throw new InvalidOperationException($"There duplicate endpoints with name [{name}]"); } return(options.EndpointFuncs[0](_services)); }