Пример #1
0
        public override void Load()
        {
            var cfg = new LuceneRepositoryConfigurator
                {
                    EnablePackageFileWatcher = GetFlagFromAppSetting("enablePackageFileWatcher", true),
                    GroupPackageFilesById = GetFlagFromAppSetting("groupPackageFilesById", true),
                    LuceneIndexPath = MapPathFromAppSetting("lucenePath", "~/App_Data/Lucene"),
                    PackagePath = MapPathFromAppSetting("packagesPath", "~/App_Data/Packages")
                };

            cfg.Initialize();

            Kernel.Components.Add<IInjectionHeuristic, NonDecoratedPropertyInjectionHeuristic>();

            var routeMapper = new NuGetWebApiRouteMapper(RoutePathPrefix);
            var mirroringPackageRepository = MirroringPackageRepositoryFactory.Create(
                cfg.Repository, PackageMirrorTargetUrl, PackageMirrorTimeout, AlwaysCheckMirror);
            var userStore = InitializeUserStore();

            Bind<NuGetWebApiRouteMapper>().ToConstant(routeMapper);
            Bind<ILucenePackageRepository>().ToConstant(cfg.Repository).OnDeactivation(_ => cfg.Dispose());
            Bind<IMirroringPackageRepository>().ToConstant(mirroringPackageRepository);
            Bind<LuceneDataProvider>().ToConstant(cfg.Provider);
            Bind<UserStore>().ToConstant(userStore);

            var symbolsPath = MapPathFromAppSetting("symbolsPath", "~/App_Data/Symbols");
            Bind<ISymbolSource>().ToConstant(new SymbolSource { SymbolsPath = symbolsPath });
            Bind<SymbolTools>().ToConstant(new SymbolTools
            {
                SymbolPath = symbolsPath,
                ToolPath = MapPathFromAppSetting("debuggingToolsPath", "")
            });

            LoadAuthentication();

            var tokenSource = new ReusableCancellationTokenSource();
            Bind<ReusableCancellationTokenSource>().ToConstant(tokenSource);

            var repository = base.Kernel.Get<ILucenePackageRepository>();

            if (GetFlagFromAppSetting("synchronizeOnStart", true))
            {
                repository.SynchronizeWithFileSystem(tokenSource.Token);    
            }
        }
Пример #2
0
        protected override void Load(ContainerBuilder builder)
        {
            builder.RegisterInstance(settings).As <INuGetWebApiSettings>();

            var routeMapper  = new NuGetWebApiRouteMapper(settings.RoutePathPrefix);
            var configurator = InitializeRepositoryConfigurator(settings);
            var userStore    = InitializeUserStore(settings);
            var repository   = configurator.Repository;
            var mirroringPackageRepository = MirroringPackageRepositoryFactory.Create(
                repository, settings.PackageMirrorTargetUrl, settings.PackageMirrorTimeout, settings.AlwaysCheckMirror);

            builder.RegisterInstance(configurator);
            builder.RegisterInstance(repository);

            builder.RegisterInstance(routeMapper);
            builder.RegisterInstance(mirroringPackageRepository).As <IMirroringPackageRepository>();
            builder.RegisterInstance(userStore);

            var symbolsPath = settings.SymbolsPath;

            builder.RegisterInstance(new SymbolSource
            {
                SymbolsPath           = symbolsPath,
                KeepSourcesCompressed = settings.KeepSourcesCompressed
            }).As <ISymbolSource>().PropertiesAutowired();

            builder.RegisterInstance(new SymbolTools
            {
                SymbolPath = symbolsPath,
                ToolPath   = settings.ToolsPath
            });

            LoadAuthMiddleware(builder, settings);

            builder.RegisterInstance(new StopSynchronizationCancellationTokenSource());

            builder.RegisterType <PackageFormDataMediaFormatter>().As <MediaTypeFormatter>();
            builder.RegisterApiControllers(typeof(NuGetWebApiModule).Assembly).PropertiesAutowired();
        }
Пример #3
0
        protected override void Load(ContainerBuilder builder)
        {
            builder.RegisterInstance(settings).As<INuGetWebApiSettings>();

            var routeMapper = new NuGetWebApiRouteMapper(settings.RoutePathPrefix);
            var configurator = InitializeRepositoryConfigurator(settings);
            var userStore = InitializeUserStore(settings);
            var repository = configurator.Repository;
            var mirroringPackageRepository = MirroringPackageRepositoryFactory.Create(
                repository, settings.PackageMirrorTargetUrl, settings.PackageMirrorTimeout, settings.AlwaysCheckMirror);

            builder.RegisterInstance(configurator);
            builder.RegisterInstance(repository);

            builder.RegisterInstance(routeMapper);
            builder.RegisterInstance(mirroringPackageRepository).As<IMirroringPackageRepository>();
            builder.RegisterInstance(userStore);

            var symbolsPath = settings.SymbolsPath;
            builder.RegisterInstance(new SymbolSource
            {
                SymbolsPath = symbolsPath,
                KeepSourcesCompressed = settings.KeepSourcesCompressed
            }).As<ISymbolSource>().PropertiesAutowired();

            builder.RegisterInstance(new SymbolTools
            {
                SymbolPath = symbolsPath,
                ToolPath = settings.ToolsPath
            });

            LoadAuthMiddleware(builder, settings);

            builder.RegisterInstance(new StopSynchronizationCancellationTokenSource());

            builder.RegisterType<PackageFormDataMediaFormatter>().As<MediaTypeFormatter>();
            builder.RegisterApiControllers(typeof (NuGetWebApiModule).Assembly).PropertiesAutowired();
        }
        public override void Load()
        {
            var cfg = new LuceneRepositoryConfigurator
                {
                    EnablePackageFileWatcher = GetFlagFromAppSetting("enablePackageFileWatcher", true),
                    GroupPackageFilesById = GetFlagFromAppSetting("groupPackageFilesById", true),
                    LuceneIndexPath = MapPathFromAppSetting("lucenePath", "~/App_Data/Lucene"),
                    PackagePath = MapPathFromAppSetting("packagesPath", "~/App_Data/Packages")
                };

            cfg.Initialize();

            Kernel.Components.Add<IInjectionHeuristic, NonDecoratedPropertyInjectionHeuristic>();

            var routeMapper = new NuGetWebApiRouteMapper(RoutePathPrefix);
            var mirroringPackageRepository = MirroringPackageRepositoryFactory.Create(cfg.Repository, PackageMirrorTargetUrl, PackageMirrorTimeout);

            Bind<NuGetWebApiRouteMapper>().ToConstant(routeMapper);
            Bind<ILucenePackageRepository>().ToConstant(cfg.Repository).OnDeactivation(_ => cfg.Dispose());
            Bind<IMirroringPackageRepository>().ToConstant(mirroringPackageRepository);
            Bind<LuceneDataProvider>().ToConstant(cfg.Provider);
            Bind<IQueryable<ApiUser>>().ToConstant(cfg.Provider.AsQueryable<ApiUser>());
            Bind<IApiKeyAuthentication>().To<LuceneApiKeyAuthentication>();

            Bind<IHttpModule>().To<ApiKeyAuthenticationModule>();

            var tokenSource = new ReusableCancellationTokenSource();
            Bind<ReusableCancellationTokenSource>().ToConstant(tokenSource);

            var repository = base.Kernel.Get<ILucenePackageRepository>();

            if (GetFlagFromAppSetting("synchronizeOnStart", true))
            {
                repository.SynchronizeWithFileSystem(tokenSource.Token);    
            }
        }