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);
            }
        }
Example #2
0
 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);
            }
        }
Example #4
0
 public MultiIndexModel(ISubmodelRepositoryServiceProvider provider, ServerSettings serverSettings)
 {
     ServiceProvider = provider;
     Settings        = serverSettings;
 }
 public SubmodelRepositoryServices(ISubmodelRepositoryServiceProvider submodelRepositoryServiceProvider)
 {
     repository        = submodelRepositoryServiceProvider;
     ServiceDescriptor = submodelRepositoryServiceProvider.ServiceDescriptor;
 }