protected override void EstablishContext() { XmlConfigurator.Configure(); RegisterDependencies(); ClaimsPrincipal.ClaimsPrincipalSelector = () => EdFiClaimsPrincipalSelector.GetClaimsPrincipal(_container.Resolve <IClaimsIdentityProvider>()); _studentRepo = _container.Resolve <IUpsertEntity <Student> >(); _programRepo = _container.Resolve <IUpsertEntity <Program> >(); _studentProgramAssociationRepo = _container.Resolve <IUpsertEntity <StudentProgramAssociation> >(); _studentTitleIPartAProgramAssociationRepo = _container.Resolve <IUpsertEntity <StudentTitleIPartAProgramAssociation> >(); _upsertService = _container.Resolve <IUpsertEntity <ServiceDescriptor> >(); InitializeEducationOrganizationIdsForTest(); _studentUniqueId = Guid.NewGuid() .ToString("N"); _serviceDescriptor = GetTestServiceDescriptor(); _program1 = GetProgram1(); _program2 = GetProgram2(); _student = GetStudent(); InitializeTestData(); }
private void FinalizeContainer(IWindsorContainer container) { _logger.Debug("Finalizing container"); container.Kernel.GetFacilities() .OfType <ChainOfResponsibilityFacility>() .SingleOrDefault() ?.FinalizeChains(); // Make this dependency available to generated artifacts GeneratedArtifactStaticDependencies.Resolvers.Set(() => container.Resolve <IResourceModelProvider>()); GeneratedArtifactStaticDependencies.Resolvers.Set(() => container.Resolve <IAuthorizationContextProvider>()); ClaimsPrincipal.ClaimsPrincipalSelector = () => EdFiClaimsPrincipalSelector.GetClaimsPrincipal(container.Resolve <IClaimsIdentityProvider>()); // Provide cache using a closure rather than repeated invocations to the container IPersonUniqueIdToUsiCache personUniqueIdToUsiCache = null; PersonUniqueIdToUsiCache.GetCache = () => personUniqueIdToUsiCache ?? (personUniqueIdToUsiCache = container.Resolve <IPersonUniqueIdToUsiCache>()); // Provide cache using a closure rather than repeated invocations to the container IDescriptorsCache cache = null; DescriptorsCache.GetCache = () => cache ?? (cache = container.Resolve <IDescriptorsCache>()); ResourceModelHelper.ResourceModel = new Lazy <ResourceModel>(() => container.Resolve <IResourceModelProvider>().GetResourceModel()); }
protected override void Arrange() { RegisterDependencies(); IDescriptorsCache cache = null; DescriptorsCache.GetCache = () => cache ??= _container.Resolve <IDescriptorsCache>(); IPersonUniqueIdToUsiCache personUniqueIdToUsiCache = null; PersonUniqueIdToUsiCache.GetCache = () => personUniqueIdToUsiCache ??= _container.Resolve <IPersonUniqueIdToUsiCache>(); var assembly = typeof(Program).GetTypeInfo().Assembly; XmlConfigurator.Configure(LogManager.GetRepository(assembly)); ClaimsPrincipal.ClaimsPrincipalSelector = () => EdFiClaimsPrincipalSelector.GetClaimsPrincipal(_container.Resolve <IClaimsIdentityProvider>()); _studentRepo = _container.Resolve <IUpsertEntity <Student> >(); _programRepo = _container.Resolve <IUpsertEntity <Program> >(); _studentProgramAssociationRepo = _container.Resolve <IUpsertEntity <StudentProgramAssociation> >(); _studentTitleIPartAProgramAssociationRepo = _container.Resolve <IUpsertEntity <StudentTitleIPartAProgramAssociation> >(); _upsertService = _container.Resolve <IUpsertEntity <ServiceDescriptor> >(); InitializeEducationOrganizationIdsForTest(); _studentUniqueId = Guid.NewGuid() .ToString("N"); _serviceDescriptor = GetTestServiceDescriptor(); _program1 = GetProgram1(); _program2 = GetProgram2(); _student = GetStudent(); InitializeTestData(); }
private void RegisterComponents(IWindsorContainer container) { if (_isAsync) { container.Register( Component.For <IDependencyResolver>() .Instance(new WindsorDependencyResolver(container)), Component.For <IIdentityService, IIdentityServiceAsync>() .ImplementedBy <TestIdentitiesService>(), Classes.From(typeof(IdentitiesController)) .BasedOn <ApiController>() .LifestyleScoped() ); } else { container.Register( Component.For <IDependencyResolver>() .Instance(new WindsorDependencyResolver(container)), Component.For <IIdentityService>() .ImplementedBy <TestIdentitiesService>(), Component.For <IIdentityServiceAsync>() .ImplementedBy <UnimplementedIdentityService>(), Classes.From(typeof(IdentitiesController)) .BasedOn <ApiController>() .LifestyleScoped() ); } container.Register( Component.For <IDatabaseConnectionStringProvider>() .Named("IDatabaseConnectionStringProvider.Admin") .ImplementedBy <NamedDatabaseConnectionStringProvider>() .DependsOn(Dependency.OnValue("connectionStringName", "EdFi_Admin"))); container.Register( Component .For <SecurityContextFactory>() .ImplementedBy <SecurityContextFactory>()); container.Register( Component.For <IOAuthTokenValidator>() .Instance(CreateOAuthTokenValidator()) .IsDefault()); container.Register( Component.For <ISecurityRepository>() .Instance(new StubSecurityRepository())); var suppliedApiKeyContextProvider = MockRepository.GenerateStub <IApiKeyContextProvider>(); container.Register( Component.For <IApiKeyContextProvider>() .Instance(suppliedApiKeyContextProvider) .IsDefault()); container.Register( Component.For <IConfigValueProvider>() .ImplementedBy <AppConfigValueProvider>()); container.Register( Component.For <IClaimsIdentityProvider>() .ImplementedBy <ClaimsIdentityProvider>()); ClaimsPrincipal.ClaimsPrincipalSelector = () => EdFiClaimsPrincipalSelector.GetClaimsPrincipal(container.Resolve <IClaimsIdentityProvider>()); container.Register( Component.For <IAuthenticationProvider>() .ImplementedBy <OAuthAuthenticationProvider>()); }
public void Install(IWindsorContainer container, IConfigurationStore store) { container.Register( Component .For <IApiKeyContextProvider, IHttpContextStorageTransferKeys>() .ImplementedBy <ApiKeyContextProvider>()); container.Register( Component .For <ISchoolYearContextProvider, IHttpContextStorageTransferKeys>() .ImplementedBy <SchoolYearContextProvider>()); container.Register( Component .For(typeof(ICompositeDefinitionProcessor <,>)) .ImplementedBy(typeof(CompositeDefinitionProcessor <,>))); container.Register( Component .For <IResourceJoinPathExpressionProcessor>() .ImplementedBy <ResourceJoinPathExpressionProcessor>()); container.Register( Component .For <IFileSystem>() .ImplementedBy <FileSystemWrapper>()); container.Register(Component .For <IResourceLoadGraphFactory>() .ImplementedBy <ResourceLoadGraphFactory>()); container.Register( Component.For <IRESTErrorProvider>().ImplementedBy <RESTErrorProvider>(), Classes.FromAssemblyContaining <Marker_EdFi_Ods_Api>().BasedOn <IExceptionTranslator>() .WithService.Base()); // TODO: GKM - Profiles - temporary workaround for lack of composability RegisterNHibernateComponents(container); container.Install(new LegacyEdFiOdsApiInstaller()); RegisterEduIdDependencies(container); RegisterOAuthTokenValidator(container); // Register specific implementations // ----------------------------------- // Controllers // These are api controllers so they need to be scoped to fit the Windsor integration for resolving dependencies container.Register( Classes.FromAssemblyContaining <Marker_EdFi_Ods_Standard>() .BasedOn <ApiController>() .LifestyleScoped()); container.Register( Classes.FromAssemblyContaining <Marker_EdFi_Ods_Profiles_Test>() .BasedOn <ApiController>() .LifestyleScoped()); // Register main API assembly's controllers container.Register( Classes.FromAssemblyContaining <Marker_EdFi_Ods_Api>() .BasedOn <ApiController>() .LifestyleScoped()); // TODO: GKM - IMPORTANT: Review these registrations from Muhammad's pull request container.Register( Component.For <ISandboxProvisioner>() .ImplementedBy <SqlServerSandboxProvisioner>()); container.Register( Component.For <IClaimsIdentityProvider>() .ImplementedBy <ClaimsIdentityProvider>()); ClaimsPrincipal.ClaimsPrincipalSelector = () => EdFiClaimsPrincipalSelector.GetClaimsPrincipal(container.Resolve <IClaimsIdentityProvider>()); // TODO: Remove with ODS-2973, deprecated by ProfilesFeatureInstaller container.Register( Component.For <IProfileResourceNamesProvider, IProfileMetadataProvider>() .ImplementedBy <ProfileResourceNamesProvider>()); // TODO: Remove with ODS-2973, deprecated by CompositesFeatureInstaller container.Register( Component.For <ICompositesMetadataProvider>() .ImplementedBy <CompositesMetadataProvider>()); container.Register( Component.For <IDefaultPageSizeLimitProvider>() .ImplementedBy <DefaultPageSizeLimitProvider>()); }