protected virtual void ConfigureLogger(ConfigurationExpression config, ApiGatewaySettings settings) { var logger = BackgroundWorkerFactory.Logger ?? new Log4NetLogger(settings.LogPath, settings.LogFilename, settings.LogArchivePath); config.For <ILogger>().Use(logger); config.Policies.FillAllPropertiesOfType <ILogger>(); BackgroundWorkerFactory.Logger = logger; }
public CompositionRoot() { _settings = new ApiGatewaySettings(); _container = new Container( config => { ConfigureLogger(config, _settings); ConfigureRest(config, _settings); } ); _container.Inject(typeof(IDependencyResolver), new StructureMapDependencyResolver(_container)); }
public CompositionRoot() { _settings = new ApiGatewaySettings(); _container = new Container( config => { ConfigureLogger(config, _settings); ConfigureRest(config, _settings); var sRoot = Edgar.Service.CompositionRoot.CompositeRootInstanace(); config.For <IEdgarApi>().Use(sRoot.GetInstance <IEdgarApi>()); config.For <IAiPortfolioSvc>().Use <AiPortfolioSvc>(); } ); _container.Inject(typeof(IDependencyResolver), new StructureMapDependencyResolver(_container)); }
private void ConfigureRest(ConfigurationExpression config, ApiGatewaySettings settings) { var httpConfig = config.ForConcreteType <HttpServiceOptions>().Configure .Ctor <string>().Is(settings.Http.BaseUrl) .Setter(m => m.PermissionedApplications).Is(settings.PermissionedApplications) .Setter(m => m.DependencyResolver).IsTheDefault() .Setter(m => m.DisableAuthorization).Is(settings.DisableAuthorization) .Setter(m => m.DefaultTokenExpiry).Is(settings.Http.DefaultTokenExpiry) .Setter(m => m.AllowTokenAsUrlParameter).Is(settings.Http.AllowTokenAsUrlParameter); config.For <IService>().Add <HttpService>() .Named(nameof(HttpService)) .Ctor <HttpServiceOptions>().Is(httpConfig); config .ForConcreteType <ApiGatewayService>().Configure .Ctor <IService>("httpService").Is(ctx => ctx.GetInstance <IService>(nameof(HttpService))); //controllers config.ForConcreteType <Http.Controller.TestController>(); }
protected virtual void ConfigureAuthorization(ConfigurationExpression config, ApiGatewaySettings settings, TimeSpan permissionRefresh = default(TimeSpan)) { config.For <IPermissionedEntityFilter>().Use <PermissionedEntityFilter>().Singleton(); config .For <IPermissionService>() .Use <CachedPermissionService>() .Ctor <TimeSpan>().Is(permissionRefresh == default(TimeSpan) ? TimeSpan.FromMinutes(30) : permissionRefresh) .Ctor <IPermissionService>().Is <Infrastructure.Permissions.PermissionService>(cfg => cfg .Ctor <Infrastructure.Wcf.PermissionService.PermissionService>().Is("service", () => new PermissionServiceClient("TcpPermissionEndpoint"))); if (settings.DisableAuthorization) { config.For <IPermissionedEntityFilter>() .Use <NoAuthPermissionedEntityFilter>() .Singleton(); } else { config.For <IPermissionedEntityFilter>() .Use <PermissionedEntityFilter>() .Singleton(); } }