public void GraphEntityRepository() { IEntityRepository instance = Factory.GraphEntityRepository; Assert.That(instance, Is.TypeOf <IdResolvingEntityRepository>()); IdResolvingEntityRepository idResolving = (IdResolvingEntityRepository)instance; Assert.That(idResolving.Inner, Is.TypeOf <GraphEntityRepository>()); }
public void GraphEntityRepository_Wiring( ) { IEntityRepository instance = Factory.GraphEntityRepository; Assert.That(instance, Is.TypeOf <IdResolvingEntityRepository>( ), "instance"); IdResolvingEntityRepository idRepo = (IdResolvingEntityRepository)instance; Assert.That(idRepo.Inner, Is.TypeOf <GraphEntityRepository>( ), "idRepo.Inner"); GraphEntityRepository graphRepo = (GraphEntityRepository)idRepo.Inner; Assert.That(graphRepo.EntityAccessControlService, Is.Not.Null, "graphRepo.EntityAccessControlService"); }
/// <summary> /// Perform any registrations /// </summary> /// <param name="builder"></param> protected override void Load(ContainerBuilder builder) { // GraphEntityRepository // Note: we use property injection, because we have circular dependencies. GraphRepo->AccessControl->QueryEngine->GraphRepo. builder .Register( c => new IdResolvingEntityRepository( new GraphEntityRepository( ))) .OnActivated( evt => { IdResolvingEntityRepository idRepos = evt.Instance; GraphEntityRepository graphRepos = (GraphEntityRepository)idRepos.Inner; graphRepos.EntityAccessControlService = evt.Context.Resolve <IEntityAccessControlService>(); }) .Keyed <IEntityRepository>("Graph"); // RequestParser builder .RegisterType <RequestParser>() .As <IRequestParser>(); }