Beispiel #1
0
 public void Register(IDependencyBuilder builder)
 {
     // Register queues
     builder.Autofac.RegisterAzureQueue(_options.AzureConnectionString, QueueNames.SendEmail);
     builder.Autofac.RegisterAzureQueue(_options.AzureConnectionString, QueueNames.SendNotifyEmail);
     builder.Autofac.RegisterAzureQueue(_options.AzureConnectionString, QueueNames.ExecuteWebJob);
 }
 public void Register(IDependencyBuilder builder)
 {
     //Add registrations here
     builder.Autofac.RegisterType <SharedBusinessLogic>().As <ISharedBusinessLogic>().SingleInstance();
     builder.Autofac.RegisterType <UpdateFromCompaniesHouseService>()
     .As <UpdateFromCompaniesHouseService>().InstancePerLifetimeScope();
 }
Beispiel #3
0
        public static IInputPlugin Load(IDependencyBuilder builder, InputConfiguration configuration, AssemblyLoadContext assemblyLoader)
        {
            if (configuration == null)
            {
                throw new ArgumentNullException(nameof(configuration));
            }

            if (string.IsNullOrWhiteSpace(configuration.InputType))
            {
                throw new Exception("Can not instantiate a translation plugin without a plugin name.");
            }

            var assemblyName = $"{typeof(InputPluginLoader).Namespace}.{configuration.InputType}";
            var assembly     = assemblyLoader.LoadFromAssemblyName(new AssemblyName(assemblyName));

            var type = assembly.GetExportedTypes().FirstOrDefault(x => typeof(IInputPlugin).GetTypeInfo().IsAssignableFrom(x));

            if (type == null)
            {
                throw new Exception($"Can not find a class implementing '{nameof(IInputPlugin)}' in assembly '{assembly.FullName}'.");
            }

            var plugin = Activator.CreateInstance(type) as IInputPlugin;

            if (plugin == null)
            {
                throw new Exception($"Couldn't instantiate '{type.Name}' plugin.");
            }

            plugin.RegisterPlugin(configuration, builder);

            return(plugin);
        }
        public void Register(IDependencyBuilder builder)
        {
            //Register references dependency modules
            builder.RegisterModule <ModernSlavery.BusinessDomain.Shared.DependencyModule>();
            builder.RegisterModule <ModernSlavery.WebUI.GDSDesignSystem.DependencyModule>();

            //Register HttpCache and HttpSession
            builder.Autofac.RegisterType <HttpSession>().As <IHttpSession>().InstancePerLifetimeScope();
            builder.Autofac.RegisterType <HttpCache>().As <IHttpCache>().SingleInstance();

            //Register the web service container
            builder.Autofac.RegisterType <WebService>().As <IWebService>().InstancePerLifetimeScope();

            //Register factories
            builder.Autofac.RegisterType <ErrorViewModelFactory>().As <IErrorViewModelFactory>()
            .SingleInstance();

            //Register Email queuers
            builder.Autofac.RegisterType <SendEmailService>().As <ISendEmailService>().SingleInstance().WithAttributeFiltering();
            builder.Autofac.RegisterType <NotificationService>().As <INotificationService>().SingleInstance().WithAttributeFiltering();

            ////Register all controllers - this is required to ensure KeyFilter is resolved in constructors
            //builder.Autofac.RegisterAssemblyTypes(typeof(DependencyModule).Assembly)
            //    .Where(t => t.IsAssignableTo<Controller>())
            //    .InstancePerLifetimeScope()
            //    .WithAttributeFiltering();

            //Register StaticAssetsVersioningHelper
            builder.Services.AddSingleton <StaticAssetsVersioningHelper>();

            //Add the custom url helper
            builder.Services.AddSingleton <IUrlHelperFactory, CustomUrlHelperFactory>();
        }
Beispiel #5
0
 public void Register(IDependencyBuilder builder)
 {
     //Add registrations here
     builder.Autofac.RegisterType <DownloadableFileBusinessLogic>().As <IDownloadableFileBusinessLogic>()
     .InstancePerLifetimeScope();
     builder.Autofac.RegisterType <AdminService>().As <IAdminService>().InstancePerLifetimeScope().WithAttributeFiltering();
 }
        public void Register(IDependencyBuilder builder)
        {
            builder.Autofac.RegisterType <DatabaseContext>().As <IDbContext>().InstancePerLifetimeScope();

            builder.Autofac.RegisterType <SqlRepository>().As <IDataRepository>().InstancePerLifetimeScope();

            builder.Autofac.RegisterType <ShortCodesRepository>().As <IShortCodesRepository>().InstancePerLifetimeScope();
        }
Beispiel #7
0
 public void Register(IDependencyBuilder builder)
 {
     //Add registrations here
     builder.Autofac.RegisterType <SearchBusinessLogic>().As <ISearchBusinessLogic>().SingleInstance()
     .WithAttributeFiltering();
     builder.Autofac.RegisterType <ViewingService>().As <IViewingService>().SingleInstance();
     builder.Autofac.RegisterType <CompareBusinessLogic>().As <ICompareBusinessLogic>()
     .InstancePerLifetimeScope();
 }
        public void Register(IDependencyBuilder builder)
        {
            builder.Autofac.RegisterType <SnapshotDateHelper>().As <ISnapshotDateHelper>().SingleInstance();

            //Register some singletons
            builder.Autofac.RegisterType <InternalObfuscator>().As <IObfuscator>().SingleInstance()
            .WithParameter("seed", _sharedOptions.ObfuscationSeed);

            builder.Autofac.RegisterType <SourceComparer>().As <ISourceComparer>().SingleInstance();
        }
Beispiel #9
0
 public static void ConfigurePerformanceTest(this IDependencyBuilder builder)
 {
     builder.Bind <PerformanceMethodTest>().Resolve <IPerformanceMethodTest>();
     builder.BindFunction((ctx) => PerformanceMethodTest.Method()).Resolve <IPerformanceMethodResultTest>();
     builder.Bind <PerformanceConstructParamTest>().Resolve <IPerformanceConstructParam1Test>();
     builder.Bind <PerformanceConstructParamTest>().Resolve <IPerformanceConstructParam2Test>();
     builder.Bind <PerformanceConstructParamTest>().Resolve <IPerformanceConstructParam3Test>();
     builder.Bind <PerformanceConstructTest>().Resolve <IPerformanceConstructTest>();
     builder.Bind <PerformanceSingletonTest>().Resolve <IPerformanceSingletonTest>().InSingletonScope();
     builder.BindInstance(new PerformanceInstanceTest()).Resolve <IPerformanceInstanceTest>();
 }
 public void Register(IDependencyBuilder builder)
 {
     //Add registrations here
     builder.Autofac.RegisterType <ScopeBusinessLogic>().As <IScopeBusinessLogic>()
     .InstancePerLifetimeScope();
     builder.Autofac.RegisterType <SubmissionService>().As <ISubmissionService>()
     .InstancePerLifetimeScope().WithAttributeFiltering();
     builder.Autofac.RegisterType <SubmissionBusinessLogic>().As <ISubmissionBusinessLogic>()
     .InstancePerLifetimeScope().WithAttributeFiltering();
     builder.Autofac.RegisterType <DraftFileBusinessLogic>().As <IDraftFileBusinessLogic>()
     .SingleInstance();
 }
        public PackageProcessorController(ISourceSchema schema, ILog log, ISqlBuilder sqlBuilder, IDependencyBuilder dependencyBuilder)
        {
            Affirm.ArgumentNotNull(schema, "schema");
            Affirm.ArgumentNotNull(log, "log");
            Affirm.ArgumentNotNull(sqlBuilder, "sqlBuilder");
            Affirm.ArgumentNotNull(dependencyBuilder, "dependencyBuilder");

            _schema            = schema;
            _sqlBuilder        = sqlBuilder;
            _log               = log;
            _dependencyBuilder = dependencyBuilder;
        }
Beispiel #12
0
 public void RegisterPlugin(InputConfiguration configuration, IDependencyBuilder builder)
 {
     builder.Register <IAttributeProvider, AttributeProvider>();
     builder.Register <IAttributeParameterProvider, AttributeParameterProvider>();
     builder.Register <IClassProvider, ClassProvider>();
     builder.Register <IEnumProvider, EnumProvider>();
     builder.Register <IEnumValueProvider, EnumValueProvider>();
     builder.Register <IMethodProvider, MethodProvider>();
     builder.Register <IParameterProvider, ParameterProvider>();
     builder.Register <IPropertyProvider, PropertyProvider>();
     builder.Register <IStructProvider, StructProvider>();
     builder.RegisterScoped <IInputService, InputService>();
 }
        private void SceneDependenciesRegistration(IDependencyBuilder builder, ISceneHost scene)
        {
            string kind;

            if (scene.Metadata.TryGetValue(METADATA_KEY, out kind))
            {
                GameFinderConfig config;
                if (Configs.TryGetValue(kind, out config))
                {
                    config.RegisterDependencies(builder);
                }
            }
        }
        public void Register(IDependencyBuilder builder)
        {
            //Register references dependency modules
            builder.RegisterModule <ModernSlavery.BusinessDomain.Shared.DependencyModule>();
            builder.RegisterModule <ModernSlavery.WebUI.Shared.DependencyModule>();

            //TODO: Register dependencies here
            //Register all controllers - this is required to ensure KeyFilter is resolved in constructors
            builder.Autofac.RegisterAssemblyTypes(typeof(DependencyModule).Assembly)
            .Where(t => t.IsAssignableTo <Controller>())
            .InstancePerLifetimeScope()
            .WithAttributeFiltering();
        }
Beispiel #15
0
 public void Register(IDependencyBuilder builder)
 {
     //Add registrations here
     builder.Autofac.RegisterType <OrganisationBusinessLogic>().As <IOrganisationBusinessLogic>()
     .InstancePerLifetimeScope();
     builder.Autofac.RegisterType <SecurityCodeBusinessLogic>().As <ISecurityCodeBusinessLogic>()
     .SingleInstance();
     builder.Autofac.RegisterType <RegistrationService>().As <IRegistrationService>()
     .InstancePerLifetimeScope().WithAttributeFiltering();
     builder.Autofac.RegisterType <RegistrationBusinessLogic>().As <IRegistrationBusinessLogic>()
     .InstancePerLifetimeScope();
     builder.Autofac.RegisterType <PinInThePostService>().As <IPinInThePostService>().SingleInstance();
 }
Beispiel #16
0
        /// <summary>
        /// Configure the API HTTP factory for the solution.
        /// </summary>
        /// <param name="builder">The dependency builder.</param>
        /// <param name="handlerFactory">Specify the handler factory.</param>
        /// <returns></returns>
        public static IDependencyBuilder ConfigureHttp(this IDependencyBuilder builder, IApiHttpHandlerFactory handlerFactory)
        {
            if (handlerFactory is null)
            {
                throw new ArgumentNullException(nameof(handlerFactory));
            }

            ApiHttpFactory.Instance = new ApiHttpFactory(new System.Net.Http.HttpClient(), handlerFactory, new ApiHttpRequestHandlerBindingMap());

            builder.BindInstance(ApiHttpFactory.Instance).Resolve <IApiHttpFactory>();
            builder.BindFunction((ctx) => ApiHttpFactory.Instance.NewClient(ctx.Info.Key)).Resolve <IApiHttpClient>().InTransientScope();

            return(builder);
        }
Beispiel #17
0
 public void RegisterPlugin(InputConfiguration configuration, IDependencyBuilder builder)
 {
     builder.Register <IAttributeDefinitionProvider <Attribute, Type>, AttributeDefinitionProvider>();
     builder.Register <IAttributeParameterDefinitionProvider <Tuple <PropertyInfo, object>, Type>, AttributeParameterDefinitionProvider>();
     builder.Register <IClassDefinitionProvider <Type, Type>, ClassDefinitionProvider>();
     builder.Register <IEnumDefinitionProvider <Type, Type>, EnumDefinitionProvider>();
     builder.Register <IEnumValueDefinitionProvider <object, Type>, EnumValueDefinitionProvider>();
     builder.Register <IMethodDefinitionProvider <MethodInfo, Type>, MethodDefinitionProvider>();
     builder.Register <IParameterDefinitionProvider <ParameterInfo, Type>, ParameterDefinitionProvider>();
     builder.Register <IPropertyDefinitionProvider <PropertyInfo, Type>, PropertyDefinitionProvider>();
     builder.Register <IStructDefinitionProvider <Type, Type>, StructDefinitionProvider>();
     builder.Register <IObjectDefinitions <Type>, ObjectDefinitions>();
     builder.RegisterScoped <IInputService, InputService>();
 }
Beispiel #18
0
        private void SceneDependenciesRegistration(IDependencyBuilder builder, ISceneHost scene)
        {
            string kind;

            if (scene.Metadata.TryGetValue(METADATA_KEY, out kind))
            {
                MatchmakingConfig config;
                if (Configs.TryGetValue(kind, out config))
                {
                    config.RegisterDependencies(builder);
                }
            }
            builder.Register <MatchmakingService>().As <IMatchmakingService>().InstancePerScene();
        }
        private void RegisterDependencies(IDependencyBuilder b)
        {
            //Indices
            b.Register <UserPeerIndex>().As <IUserPeerIndex>().SingleInstance();
            b.Register <PeerUserIndex>().As <IPeerUserIndex>().SingleInstance();
            b.Register <UserToGroupIndex>().SingleInstance();
            b.Register <GroupsIndex>().SingleInstance();
            b.Register <SingleNodeActionStore>().As <IActionStore>().SingleInstance();
            b.Register <SceneAuthorizationController>();
            b.Register <UserManagementConfig>(_config);

            b.Register <UserService>().As <IUserService>();
            b.Register <UserSessions>().As <IUserSessions>();
        }
        /// <summary>
        /// Configure the <see cref="IApiCommandContentSerializer"/> serializers and <see cref="IApiCommandContentDeserializer"/> deserializers.
        /// </summary>
        /// <param name="builder"></param>
        /// <returns></returns>
        public static IDependencyBuilder ConfigureApi(this IDependencyBuilder builder)
        {
            builder.Bind <DefaultFormUrlEncodedContentParser>().Resolve <IDefaultFormUrlEncodedContentParser>().WithKey(ApiSerializer.FormUrlEncoded);
            builder.Bind <ApiCommandContentSerializerFormUrlEncoded>().Resolve <IApiCommandContentSerializer>().WithKey(ApiSerializer.FormUrlEncoded);
            builder.Bind <ApiCommandContentSerializerJson>().Resolve <IApiCommandContentSerializer>().WithKey(ApiSerializer.Json);
            builder.Bind <ApiCommandContentSerializerString>().Resolve <IApiCommandContentSerializer>().WithKey(ApiSerializer.String);
            builder.Bind <ApiCommandContentSerializerXml>().Resolve <IApiCommandContentSerializer>().WithKey(ApiSerializer.Xml);

            builder.Bind <ApiCommandContentSerializerFormUrlEncoded>().Resolve <IApiCommandContentDeserializer>().WithKey(ApiSerializer.FormUrlEncoded);
            builder.Bind <ApiCommandContentSerializerJson>().Resolve <IApiCommandContentDeserializer>().WithKey(ApiSerializer.Json);
            builder.Bind <ApiCommandContentSerializerString>().Resolve <IApiCommandContentDeserializer>().WithKey(ApiSerializer.String);
            builder.Bind <ApiCommandContentSerializerXml>().Resolve <IApiCommandContentDeserializer>().WithKey(ApiSerializer.Xml);

            return(builder);
        }
Beispiel #21
0
        /// <summary>
        /// Configure the <see cref="IHttpResponseFactory"/> and <see cref="IApiCommandFactory"/> and bind the <see cref="IApiCommandAsync"/> for all commands under <see cref="HttpRequestType"/>
        /// </summary>
        /// <param name="builder"></param>
        /// <returns></returns>
        public static IDependencyBuilder ConfigureApi(this IDependencyBuilder builder)
        {
            builder.Bind <HttpResponseFactory>().Resolve <IHttpResponseFactory>().InSingletonScope();
            builder.Bind <ApiCommandFactory>().Resolve <IApiCommandFactory>().InSingletonScope();
            builder.Bind(typeof(ApiCommandContentTypeMap <>)).Resolve(typeof(IApiCommandContentTypeMap <>));

            builder.BindFactory <IApiCommandFactory>(nameof(IApiCommandFactory.CreateGetCommand)).Resolve <IApiCommandAsync>().WithKey(HttpRequestType.Get);
            builder.BindFactory <IApiCommandFactory>(nameof(IApiCommandFactory.CreateDeleteCommand)).Resolve <IApiCommandAsync>().WithKey(HttpRequestType.Delete);
            builder.BindFactory <IApiCommandFactory>(nameof(IApiCommandFactory.CreatePutCommand)).Resolve <IApiCommandAsync>().WithKey(HttpRequestType.Put);
            builder.BindFactory <IApiCommandFactory>(nameof(IApiCommandFactory.CreatePostCommand)).Resolve <IApiCommandAsync>().WithKey(HttpRequestType.Post);
            builder.BindFactory <IApiCommandFactory>(nameof(IApiCommandFactory.CreatePatchCommand)).Resolve <IApiCommandAsync>().WithKey(HttpRequestType.Patch);
            builder.BindFactory <IApiCommandFactory>(nameof(IApiCommandFactory.CreateSendCommand)).Resolve <IApiCommandAsync>().WithKey(HttpRequestType.Custom);

            return(builder);
        }
 public void Register(IDependencyBuilder builder)
 {
     // use the 'localStorageRoot' when hosting the storage in a local folder
     if (string.IsNullOrWhiteSpace(_options.LocalStorageRoot))
     {
         builder.Autofac.Register(
             c => new AzureFileRepository(_options,
                                          new ExponentialRetry(TimeSpan.FromMilliseconds(500), 10)))
         .As <IFileRepository>()
         .SingleInstance();
     }
     else
     {
         builder.Autofac.Register(c => new SystemFileRepository(_options)).As <IFileRepository>()
         .SingleInstance();
     }
 }
        public void Register(IDependencyBuilder builder)
        {
            //Add a dedicated httpclient for Companies house API with exponential retry policy
            builder.Services.AddHttpClient <ICompaniesHouseAPI, CompaniesHouseAPI>(nameof(ICompaniesHouseAPI),
                                                                                   httpClient =>
            {
                CompaniesHouseAPI.SetupHttpClient(httpClient, _companiesHouseOptions.ApiServer, _companiesHouseOptions.ApiKey);
            })
            .SetHandlerLifetime(TimeSpan.FromMinutes(10))
            .AddPolicyHandler(CompaniesHouseAPI.GetRetryPolicy());

            builder.Autofac.RegisterType <CompaniesHouseAPI>()
            .As <ICompaniesHouseAPI>()
            .SingleInstance()
            .WithParameter(
                (p, ctx) => p.ParameterType == typeof(HttpClient),
                (p, ctx) => ctx.Resolve <IHttpClientFactory>().CreateClient(nameof(ICompaniesHouseAPI)));

            builder.Autofac.RegisterType <PostcodeChecker>().As <IPostcodeChecker>().SingleInstance();
        }
Beispiel #24
0
        private void RegisterDependencies(IDependencyBuilder b)
        {
            //Indices

            //b.Register<UserToGroupIndex>().SingleInstance();
            //b.Register<GroupsIndex>().SingleInstance();
            //b.Register<SingleNodeActionStore>().As<IActionStore>().SingleInstance();
            b.Register <SceneAuthorizationController>();
            b.Register <UserSessionController>();
            b.Register <AuthenticationController>().InstancePerRequest();
            b.Register <AuthenticationService>().As <IAuthenticationService>().InstancePerRequest();

            b.Register <UserService>().As <IUserService>();

            b.Register <UserManagementConfig>().SingleInstance();
            b.Register <UsersAdminController>();
            b.Register <AdminWebApiConfig>().As <IAdminWebApiConfig>();

            b.Register <UserSessionCache>().AsSelf().InstancePerScene();
            b.Register <PlatformSpecificServices>().As <IPlatformSpecificServices>();
        }
        public void Register(IDependencyBuilder builder)
        {
            if (string.IsNullOrWhiteSpace(_sharedOptions.GoogleAnalyticsAccountId))
            {
                if (_sharedOptions.IsProduction())
                {
                    throw new ArgumentNullException(nameof(_sharedOptions.GoogleAnalyticsAccountId));
                }

                builder.Autofac.RegisterType <FakeWebTracker>().As <IWebTracker>().SingleInstance();
                return;
            }

            //Add a dedicated httpclient for Google Analytics tracking with exponential retry policy
            builder.Services.AddHttpClient <IWebTracker, GoogleAnalyticsTracker>(nameof(IWebTracker), client =>
            {
                client.BaseAddress = GoogleAnalyticsTracker.BaseUri;
                client.DefaultRequestHeaders.Clear();
                client.DefaultRequestHeaders.ConnectionClose = false;
                ServicePointManager.FindServicePoint(client.BaseAddress).ConnectionLeaseTimeout = 60 * 1000;
            })
            .SetHandlerLifetime(TimeSpan.FromMinutes(10))
            .AddPolicyHandler(
                //see https://developers.google.com/analytics/devguides/config/mgmt/v3/errors
                HttpPolicyExtensions
                .HandleTransientHttpError()
                .WaitAndRetryAsync(6,
                                   retryAttempt => TimeSpan.FromMilliseconds(new Random().Next(1, 1000)) +
                                   TimeSpan.FromSeconds(Math.Pow(2, retryAttempt))));

            //Register WebTracker
            builder.Autofac.RegisterType <GoogleAnalyticsTracker>()
            .As <IWebTracker>()
            .SingleInstance()
            .WithParameter(
                (p, ctx) => p.ParameterType == typeof(HttpClient),
                (p, ctx) => ctx.Resolve <IHttpClientFactory>().CreateClient(nameof(IWebTracker)))
            .WithParameter("trackingId", _sharedOptions.GoogleAnalyticsAccountId);
        }
Beispiel #26
0
 public static void ConfigureTest(this IDependencyBuilder builder)
 {
     builder.Bind <NormalClass>().Resolve <INormalClass>().InTransientScope();
     builder.Bind <CallingClass>().Resolve <ICallingClass>();
     builder.Bind <ChildClass>().Resolve <IChildClass>();
     builder.Bind <SingletonClassTest>().Resolve <ISingletonClass>().InSingletonScope();
     builder.Bind <SingletonClassTest>().Resolve <ISingletonNamedClass>().InSingletonScope().WithKey(nameof(ISingletonNamedClass));
     builder.Bind <SingletonClassTest>().Resolve <ISingletonEnumClass>().InSingletonScope().WithKey(EnumAsKey.Key);
     builder.Bind <SingletonClassTest>().Resolve <ISingletonKeyClass>().InSingletonScope().WithKey(typeof(ISingletonKeyClass));
     builder.Bind <SingletonSameInstanceClassTest>().Resolve(typeof(ISingletonSameInstanceClassTest), typeof(ISingletonSameInstanceClassTest2), typeof(ISingletonSameInstanceClassTest3), typeof(ISingletonSameInstanceClassTest4)).InSingletonScope();
     builder.Bind <MultipleConstructorClass>().Resolve <IMultipleConstructorClass>();
     builder.Bind <FactoryClass>().Resolve <IFactoryClass>().InSingletonScope();
     builder.BindFunction((ctx) => ctx.Ioc.Resolve <IFactoryClass>().ResolveFactoryResolutionClass(ctx.GetArguments())).Resolve <IFactoryResolutionClass>().WithKey(MethodWithArgs);
     builder.BindFunction((ctx) => ctx.Ioc.Resolve <IFactoryClass>().ResolveFactoryResolutionClass()).Resolve <IFactoryResolutionClass>().WithKey(MethodWithNoArgs);
     builder.Bind <FactoryResolutionClass>().Resolve <IFactoryResolutionClass>().WithKey(NotMethod);
     builder.Bind <NotBindedClass>().Resolve <INotBindedKeyed>().WithKey(NotResolvedName);
     builder.Bind <NotBindedClass>().Resolve <INotBindedKeyed>().WithKey(EnumAsKey.Key);
     builder.Bind <NotBindedClass>().Resolve <INotBindedKeyed>().WithKey(typeof(INormalClass));
     builder.Bind(typeof(GenericTypeTest <>)).Resolve(typeof(IGenericTypeTests <>));
     builder.Bind(typeof(GenericTypeTest <>)).Resolve(typeof(IGenericSingletonTests <>)).InSingletonScope();
     builder.Bind <MultipleBindingClassTest1>().Resolve <IMultipleBindingClassTest>().WithKey(nameof(MultipleBindingClassTest1));
     builder.Bind <MultipleBindingClassTest2>().Resolve <IMultipleBindingClassTest>().WithKey(nameof(MultipleBindingClassTest2));
     builder.Bind <MultipleBindingClassTest3>().Resolve <IMultipleBindingClassTest>().WithKey(nameof(MultipleBindingClassTest3));
     builder.Bind <MultipleBindingConstructorClassTest>().Resolve <IMultipleBindingConstructorClassTest>();
     builder.Bind(typeof(MultipleBindingConstructorClassTest <>)).Resolve(typeof(IMultipleBindingConstructorClassTest <>));
     builder.Bind(typeof(MultipleBindingClassTest1 <>)).Resolve(typeof(IMultipleBindingClassTest <>)).WithKey(typeof(MultipleBindingClassTest1 <>).Name);
     builder.Bind(typeof(MultipleBindingClassTest2 <>)).Resolve(typeof(IMultipleBindingClassTest <>)).WithKey(typeof(MultipleBindingClassTest2 <>).Name);
     builder.Bind(typeof(MultipleBindingClassTest3 <>)).Resolve(typeof(IMultipleBindingClassTest <>)).WithKey(typeof(MultipleBindingClassTest3 <>).Name);
     builder.Bind <FactoryMethodClass>().Resolve <IFactoryMethodClass>().InSingletonScope();
     builder.BindFactory <IFactoryMethodClass>(nameof(IFactoryMethodClass.Method)).Resolve <IFactoryMethodResolutionClass>();
     builder.BindFactory <IFactoryMethodClass>(nameof(IFactoryMethodClass.Method)).Resolve <IFactoryMethodResolutionNamedClass>().WithKey(Named1);
     builder.BindFactory <IFactoryMethodClass>(nameof(IFactoryMethodClass.Method)).Resolve <IFactoryMethodResolutionNamedClass>().WithKey(Named2);
     builder.BindFactory <IFactoryMethodClass>(nameof(IFactoryMethodClass.Singleton)).Resolve <IFactoryMethodResolutionSingletonClass>().InSingletonScope();
     builder.Bind(typeof(FactoryMethodClass <>)).Resolve(typeof(IFactoryMethodClass <>)).InSingletonScope();
     builder.BindFactory(typeof(IFactoryMethodClass <>), "Method").Resolve(typeof(IFactoryMethodResolutionClass <>));
     builder.BindFactory(typeof(IFactoryMethodClass <>), "Singleton").Resolve(typeof(IFactoryMethodResolutionSingletonClass <>)).InSingletonScope();
     builder.Bind <ResolveAllTest>().ResolveAll().WithKey(nameof(ResolveAllTest));
     builder.Bind <ResolveAllTest2>().ResolveAll().WithKey(nameof(ResolveAllTest2));
 }
Beispiel #27
0
 private void RegisterSceneDependencies(IDependencyBuilder b, ISceneHost scene)
 {
     if (scene.Template == SCENE_TEMPLATE)
     {
         b.Register <UserSessions>().As <IUserSessions>();
         b.Register <UserPeerIndex>().As <IUserPeerIndex>().SingleInstance();
         b.Register <PeerUserIndex>().As <IPeerUserIndex>().SingleInstance();
         b.Register <DeviceIdentifierAuthenticationProvider>().As <IAuthenticationProvider>();
         b.Register <AdminImpersonationAuthenticationProvider>().As <IAuthenticationProvider>();
         b.Register <CredentialsRenewer>().AsSelf().As <IAuthenticationEventHandler>().SingleInstance();
     }
     else
     {
         b.Register <UserSessionsProxy>(dr => new UserSessionsProxy(
                                            dr.Resolve <ISceneHost>(),
                                            dr.Resolve <ISerializer>(),
                                            dr.Resolve <IEnvironment>(),
                                            dr.Resolve <IServiceLocator>(),
                                            dr.Resolve <UserSessionCache>()))
         .As <IUserSessions>().InstancePerRequest();
     }
 }
        public void Register(IDependencyBuilder builder)
        {
            // Setup azure search
            builder.Autofac.Register(c =>
                                     new SearchServiceClient(_options.AzureServiceName,
                                                             new SearchCredentials(_options.AzureApiAdminKey)))
            .As <ISearchServiceClient>()
            .SingleInstance();

            builder.Autofac.RegisterType <AzureEmployerSearchRepository>()
            .As <ISearchRepository <EmployerSearchModel> >()
            .SingleInstance()
            .WithParameter("serviceName", _options.AzureServiceName)
            .WithParameter("indexName", _options.EmployerIndexName)
            .WithParameter("adminApiKey", _options.AzureApiAdminKey)
            .WithParameter("disabled", _options.Disabled).WithAttributeFiltering();

            builder.Autofac.RegisterType <AzureSicCodeSearchRepository>()
            .As <ISearchRepository <SicCodeSearchModel> >()
            .SingleInstance()
            .WithParameter("indexName", _options.SicCodeIndexName)
            .WithParameter("disabled", _options.Disabled).WithAttributeFiltering();
        }
Beispiel #29
0
        public void Register(IDependencyBuilder builder)
        {
            // Register queues (without key filtering)
            builder.Autofac
            .Register(c => new LogEventQueue(_storageOptions.AzureConnectionString, c.Resolve <IFileRepository>()))
            .SingleInstance();
            builder.Autofac
            .Register(c => new LogRecordQueue(_storageOptions.AzureConnectionString, c.Resolve <IFileRepository>()))
            .SingleInstance();

            // Register record loggers
            builder.Autofac.RegisterLogRecord(Filenames.BadSicLog);
            builder.Autofac.RegisterLogRecord(Filenames.ManualChangeLog);
            builder.Autofac.RegisterLogRecord(Filenames.RegistrationLog);
            builder.Autofac.RegisterLogRecord(Filenames.SubmissionLog);
            builder.Autofac.RegisterLogRecord(Filenames.SearchLog);

            // Register log records (without key filtering)
            builder.Autofac.RegisterType <UserAuditLogger>().As <IUserLogger>().SingleInstance();
            builder.Autofac.RegisterType <RegistrationAuditLogger>().As <IRegistrationLogger>().SingleInstance();

            builder.Autofac.RegisterType <SeriEventLogger>().As <IEventLogger>().SingleInstance();
        }
Beispiel #30
0
        public void Register(IDependencyBuilder builder)
        {
            builder.Services.AddHttpClient <GovNotifyEmailProvider>(nameof(GovNotifyEmailProvider));

            builder.Services.AddApplicationInsightsTelemetry(_sharedOptions.AppInsights_InstrumentationKey);

            builder.Services.AddSingleton <IJobActivator, AutofacJobActivator>();

            //Register the file storage dependencies
            builder.RegisterModule <FileStorageDependencyModule>();

            //Register the log storage dependencies
            builder.RegisterModule <Infrastructure.Logging.DependencyModule>();

            //Register the messaging dependencies
            builder.Autofac.RegisterType <Messenger>().As <IMessenger>().SingleInstance();
            builder.Autofac.RegisterType <GovNotifyAPI>().As <IGovNotifyAPI>().SingleInstance();

            // Register the email template dependencies
            builder.Autofac
            .RegisterInstance(new EmailTemplateRepository(FileSystem.ExpandLocalPath("~/App_Data/EmailTemplates")))
            .As <IEmailTemplateRepository>().SingleInstance();

            //Register some singletons
            builder.Autofac.RegisterType <InternalObfuscator>().As <IObfuscator>().SingleInstance()
            .WithParameter("seed", _sharedOptions.ObfuscationSeed);

            // Register email provider dependencies
            builder.Autofac.RegisterType <GovNotifyEmailProvider>().SingleInstance().WithAttributeFiltering();
            builder.Autofac.RegisterType <SmtpEmailProvider>().SingleInstance().WithAttributeFiltering();
            builder.Autofac.RegisterType <EmailProvider>().SingleInstance().WithAttributeFiltering();

            // Need to register webJob class in Autofac as well
            builder.Autofac.RegisterType <Functions>().InstancePerDependency();
            builder.Autofac.RegisterType <DisableWebjobProvider>().SingleInstance();
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="CompositionControllerActivator"/> class.
 /// </summary>
 /// <param name="builder">The builder.</param>
 public CompositionControllerActivator(IDependencyBuilder builder)
 {
     this.builder = builder;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="CompositionDataAnnotationsModelValidatorProvider"/> class.
 /// </summary>
 /// <param name="builder">The builder.</param>
 public CompositionDataAnnotationsModelValidatorProvider(IDependencyBuilder builder)
 {
     this.builder = builder;
     this.getAttributeMethodInfo =
             typeof(DataAnnotationsModelValidator).GetMethod("get_Attribute", BindingFlags.NonPublic | BindingFlags.DeclaredOnly | BindingFlags.Instance);
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="CompositionFilterAttributeFilterProvider"/> class.
 /// </summary>
 /// <param name="builder">The builder.</param>
 public CompositionFilterAttributeFilterProvider(IDependencyBuilder builder)
 {
     this.builder = builder;
 }