예제 #1
0
 private void InstallFixtures(ITransactionManager transactionManager, IDomainObjectInjector injector, object[] newFixtures)
 {
     foreach (var fixture in newFixtures)
     {
         InstallFixture(transactionManager, injector, fixture);
     }
 }
예제 #2
0
        private void InstallFixture(ITransactionManager transactionManager, IDomainObjectInjector injector, object fixture)
        {
            injector.InjectInto(fixture);

            // first, install any child fixtures (if this is a composite.
            var childFixtures = GetFixtures(fixture);

            InstallFixtures(transactionManager, injector, childFixtures);

            // now, install the fixture itself
            try {
                transactionManager.StartTransaction();
                InstallFixture(fixture);
                transactionManager.EndTransaction();
            }
            catch (Exception e) {
                Log.Error("installing fixture " + fixture.GetType().FullName + " failed (" + e.Message + "); aborting fixture ", e);
                try {
                    transactionManager.AbortTransaction();
                }
                catch (Exception e2) {
                    Log.Error("failure during abort", e2);
                }
                throw;
            }
        }
        public LifeCycleManager(
            IMetamodelManager metamodel,
            IPersistAlgorithm persistAlgorithm,
            IOidGenerator oidGenerator,
            IDomainObjectInjector injector,
            IObjectPersistor objectPersistor,
            INakedObjectManager nakedObjectManager
            )
        {
            Assert.AssertNotNull(metamodel);
            Assert.AssertNotNull(persistAlgorithm);
            Assert.AssertNotNull(oidGenerator);
            Assert.AssertNotNull(injector);
            Assert.AssertNotNull(objectPersistor);
            Assert.AssertNotNull(nakedObjectManager);

            this.metamodel          = metamodel;
            this.persistAlgorithm   = persistAlgorithm;
            this.oidGenerator       = oidGenerator;
            this.injector           = injector;
            this.objectPersistor    = objectPersistor;
            this.nakedObjectManager = nakedObjectManager;

            Log.DebugFormat("Creating {0}", this);
        }
예제 #4
0
 public NakedObjectsFramework(IMessageBroker messageBroker,
                              ISession session,
                              ILifecycleManager lifecycleManager,
                              IServicesManager servicesManager,
                              INakedObjectManager nakedObjectManager,
                              IObjectPersistor persistor,
                              IReflector reflector,
                              IMetamodelManager metamodelManagerManager,
                              IDomainObjectInjector domainObjectInjector,
                              NakedObjectFactory nakedObjectFactory,
                              SpecFactory memberFactory,
                              ITransactionManager transactionManager,
                              IFrameworkResolver frameworkResolver,
                              ILoggerFactory loggerFactory)
 {
     MessageBroker                  = messageBroker;
     Session                        = session;
     LifecycleManager               = lifecycleManager;
     ServicesManager                = servicesManager;
     NakedObjectManager             = nakedObjectManager;
     Persistor                      = persistor;
     Reflector                      = reflector;
     MetamodelManager               = metamodelManagerManager;
     DomainObjectInjector           = domainObjectInjector;
     TransactionManager             = transactionManager;
     FrameworkResolver              = frameworkResolver;
     domainObjectInjector.Framework = this;
     memberFactory.Initialize(this, loggerFactory, loggerFactory.CreateLogger <SpecFactory>());
     nakedObjectFactory.Initialize(metamodelManagerManager, session, lifecycleManager, persistor, nakedObjectManager, loggerFactory);
 }
 public NakedObjectsFramework(IMessageBroker messageBroker,
                              ISession session,
                              ILifecycleManager lifecycleManager,
                              IServicesManager servicesManager,
                              INakedObjectManager nakedObjectManager,
                              IObjectPersistor persistor,
                              IReflector reflector,
                              IMetamodelManager metamodelManagerManager,
                              IDomainObjectInjector domainObjectInjector,
                              NakedObjectFactory nakedObjectFactory,
                              SpecFactory memberFactory,
                              ITransactionManager transactionManager,
                              IFrameworkResolver frameworkResolver)
 {
     this.messageBroker             = messageBroker;
     this.session                   = session;
     this.lifecycleManager          = lifecycleManager;
     this.servicesManager           = servicesManager;
     this.nakedObjectManager        = nakedObjectManager;
     this.persistor                 = persistor;
     this.reflector                 = reflector;
     this.metamodelManagerManager   = metamodelManagerManager;
     this.domainObjectInjector      = domainObjectInjector;
     this.transactionManager        = transactionManager;
     this.frameworkResolver         = frameworkResolver;
     domainObjectInjector.Framework = this;
     memberFactory.Initialize(this);
     nakedObjectFactory.Initialize(metamodelManagerManager, session, lifecycleManager, persistor, nakedObjectManager);
 }
        public ServicesManager(IDomainObjectInjector injector, INakedObjectManager manager, IReflectorConfiguration config) {
            Assert.AssertNotNull(injector);
            Assert.AssertNotNull(manager);
            Assert.AssertNotNull(config);

            this.injector = injector;
            this.manager = manager;

            services = config.Services.Select(Activator.CreateInstance).ToList();
        }
        public override void Populate(string[] keys,
                                      INakedObjectAdapter nakedObjectAdapter,
                                      INakedObjectManager nakedObjectManager, IDomainObjectInjector injector,
                                      ISession session,
                                      IObjectPersistor persistor)
        {
            var newVm = populateFunction.Invoke(null, populateFunction.GetParameterValues(nakedObjectAdapter, keys, session, persistor));

            nakedObjectAdapter.ReplacePoco(newVm);
        }
예제 #8
0
        public ServicesManager(IDomainObjectInjector injector, INakedObjectManager manager, IReflectorConfiguration config)
        {
            Assert.AssertNotNull(injector);
            Assert.AssertNotNull(manager);
            Assert.AssertNotNull(config);

            this.injector = injector;
            this.manager  = manager;

            services = config.Services.Select(Activator.CreateInstance).ToList();
        }
예제 #9
0
        public ServicesManager(IDomainObjectInjector injector,
                               INakedObjectManager manager,
                               IObjectReflectorConfiguration config,
                               ILogger <ServicesManager> logger,
                               IFunctionalReflectorConfiguration fConfig = null)
        {
            this.injector = injector ?? throw new InitialisationException($"{nameof(injector)} is null");
            this.manager  = manager ?? throw new InitialisationException($"{nameof(manager)} is null");
            this.logger   = logger ?? throw new InitialisationException($"{nameof(logger)} is null");

            services = config.Services.Select(Activator.CreateInstance).ToList();
        }
 public LifeCycleManager(
     IMetamodelManager metamodel,
     IPersistAlgorithm persistAlgorithm,
     IOidGenerator oidGenerator,
     IDomainObjectInjector injector,
     IObjectPersistor objectPersistor,
     INakedObjectManager nakedObjectManager,
     ISession session,
     ILoggerFactory loggerFactory,
     ILogger <LifeCycleManager> logger
     )
 {
     this.metamodel          = metamodel ?? throw new InitialisationException($"{nameof(metamodel)} is null");
     this.persistAlgorithm   = persistAlgorithm ?? throw new InitialisationException($"{nameof(persistAlgorithm)} is null");
     this.oidGenerator       = oidGenerator ?? throw new InitialisationException($"{nameof(oidGenerator)} is null");
     this.injector           = injector ?? throw new InitialisationException($"{nameof(injector)} is null");
     this.objectPersistor    = objectPersistor ?? throw new InitialisationException($"{nameof(objectPersistor)} is null");
     this.nakedObjectManager = nakedObjectManager ?? throw new InitialisationException($"{nameof(nakedObjectManager)} is null");
     this.session            = session;
     this.loggerFactory      = loggerFactory ?? throw new InitialisationException($"{nameof(loggerFactory)} is null");
     this.logger             = logger ?? throw new InitialisationException($"{nameof(logger)} is null");
 }
        public LifeCycleManager(
            IMetamodelManager metamodel,
            IPersistAlgorithm persistAlgorithm,
            IOidGenerator oidGenerator,
            IDomainObjectInjector injector,
            IObjectPersistor objectPersistor,
            INakedObjectManager nakedObjectManager
            ) {
            Assert.AssertNotNull(metamodel);
            Assert.AssertNotNull(persistAlgorithm);
            Assert.AssertNotNull(oidGenerator);
            Assert.AssertNotNull(injector);
            Assert.AssertNotNull(objectPersistor);
            Assert.AssertNotNull(nakedObjectManager);

            this.metamodel = metamodel;
            this.persistAlgorithm = persistAlgorithm;
            this.oidGenerator = oidGenerator;
            this.injector = injector;
            this.objectPersistor = objectPersistor;
            this.nakedObjectManager = nakedObjectManager;
        }
 public override string[] Derive(INakedObjectAdapter nakedObjectAdapter, INakedObjectManager nakedObjectManager, IDomainObjectInjector injector)
 {
     return(nakedObjectAdapter.GetDomainObject <IViewModel>().DeriveKeys());
 }
 public override string[] Derive(INakedObjectAdapter nakedObjectAdapter,
                                 INakedObjectManager nakedObjectManager,
                                 IDomainObjectInjector injector,
                                 ISession session,
                                 IObjectPersistor persistor) =>
 deriveFunction.Invoke(null, deriveFunction.GetParameterValues(nakedObjectAdapter, session, persistor)) as string[];
 public override string[] Derive(INakedObjectAdapter nakedObjectAdapter, INakedObjectManager nakedObjectManager, IDomainObjectInjector injector) {
     return nakedObjectAdapter.GetDomainObject<IViewModel>().DeriveKeys();
 }
 public override void Populate(string[] keys, INakedObjectAdapter nakedObjectAdapter, INakedObjectManager nakedObjectManager, IDomainObjectInjector injector) {
     nakedObjectAdapter.GetDomainObject<IViewModel>().PopulateUsingKeys(keys);
 }
 public abstract string[] Derive(INakedObjectAdapter nakedObjectAdapter, INakedObjectManager nakedObjectManager, IDomainObjectInjector injector, ISession session, IObjectPersistor persistor);
 public abstract void Populate(string[] keys, INakedObjectAdapter nakedObjectAdapter, INakedObjectManager nakedObjectManager, IDomainObjectInjector injector, ISession session, IObjectPersistor persistor);
 public override string[] Derive(INakedObjectAdapter nakedObjectAdapter, INakedObjectManager nakedObjectManager, IDomainObjectInjector injector, ISession session, IObjectPersistor persistor) => nakedObjectAdapter.GetDomainObject <IViewModel>().DeriveKeys();
 public override void Populate(string[] keys, INakedObjectAdapter nakedObjectAdapter, INakedObjectManager nakedObjectManager, IDomainObjectInjector injector, ISession session, IObjectPersistor persistor) => nakedObjectAdapter.GetDomainObject <IViewModel>().PopulateUsingKeys(keys);
 public override void Populate(string[] keys, INakedObjectAdapter nakedObjectAdapter, INakedObjectManager nakedObjectManager, IDomainObjectInjector injector)
 {
     nakedObjectAdapter.GetDomainObject <IViewModel>().PopulateUsingKeys(keys);
 }
예제 #21
0
 public abstract string[] Derive(INakedObjectAdapter nakedObjectAdapter, INakedObjectManager nakedObjectManager, IDomainObjectInjector injector);
예제 #22
0
 public abstract void Populate(string[] keys, INakedObjectAdapter nakedObjectAdapter, INakedObjectManager nakedObjectManager, IDomainObjectInjector injector);