public static void UseDefaultEndpointRegistration(this ISubmodelRepositoryServiceProvider serviceProvider, IEnumerable <IEndpoint> endpoints) { List <IEndpoint> repositoryEndpoints = new List <IEndpoint>(); foreach (var endpoint in endpoints) { string epAddress = endpoint.Address; if (!epAddress.EndsWith("/submodels")) { epAddress = epAddress + (epAddress.EndsWith("/") ? "" : "/") + "submodels"; } repositoryEndpoints.Add(EndpointFactory.CreateEndpoint(endpoint.Type, epAddress, endpoint.Security)); } serviceProvider.ServiceDescriptor.AddEndpoints(repositoryEndpoints); var submodelRepositoryDescriptor = serviceProvider.ServiceDescriptor; foreach (var submodelDescriptor in submodelRepositoryDescriptor.SubmodelDescriptors) { List <IEndpoint> submodelEndpoints = new List <IEndpoint>(); foreach (var endpoint in repositoryEndpoints) { var ep = EndpointFactory.CreateEndpoint(endpoint.Type, GetSubmodelInRepositoryEndpoint(endpoint, submodelDescriptor.IdShort), endpoint.Security); submodelEndpoints.Add(ep); } submodelDescriptor.AddEndpoints(submodelEndpoints); } }
public void SetServiceProvider(ISubmodelRepositoryServiceProvider submodelRepositoryServiceProvider) { WebHostBuilder.ConfigureServices(services => { services.AddSingleton <ISubmodelRepositoryServiceProvider>(submodelRepositoryServiceProvider); }); }
public static void UseAutoEndpointRegistration(this ISubmodelRepositoryServiceProvider serviceProvider, ServerConfiguration serverConfiguration) { string multiUrl = serverConfiguration.Hosting.Urls.Find(u => u.Contains("+")); if (!string.IsNullOrEmpty(multiUrl)) { Uri uri = new Uri(multiUrl.Replace("+", "localhost")); List <IEndpoint> endpoints = GetNetworkInterfaceBasedEndpoints(uri.Scheme, uri.Port); serviceProvider.UseDefaultEndpointRegistration(endpoints); } else { List <IEndpoint> endpoints = serverConfiguration.Hosting.Urls.ConvertAll(EndpointConverter); serviceProvider.UseDefaultEndpointRegistration(endpoints); } }
public MultiIndexModel(ISubmodelRepositoryServiceProvider provider, ServerSettings serverSettings) { ServiceProvider = provider; Settings = serverSettings; }
public SubmodelRepositoryServices(ISubmodelRepositoryServiceProvider submodelRepositoryServiceProvider) { repository = submodelRepositoryServiceProvider; ServiceDescriptor = submodelRepositoryServiceProvider.ServiceDescriptor; }