IServiceProvider IShinyStartup.CreateServiceProvider(IServiceCollection services)
        {
            if (_container is null)
            {
                _container = CreateContainerExtension();
            }

            var sp = _container.CreateServiceProvider(services);

            var moduleCatalog = _container.Resolve <IModuleCatalog>();

            ConfigureModuleCatalog(moduleCatalog);

            if (moduleCatalog.Modules.Any() && moduleCatalog.HasStartupModules(out var startupModules))
            {
                var moduleInitializer = _container.Resolve <IModuleInitializer>() as IShinyPrismModuleInitializer;
                moduleInitializer.LoadShinyModules(startupModules);
            }

            return(sp);
        }