예제 #1
0
        public void PerformTest()
        {
            _domain.DoCallBack(() =>
            {
                var architecture = Qi4CSArchitectureFactory.NewSingletonArchitecture();
                var assembler    = architecture.CompositeAssembler;
                assembler
                .NewPlainComposite().OfTypes(typeof(MyComposite))
                .WithConcerns(typeof(MyCompositeConcern)).Done()
                .WithSideEffects(typeof(MyCompositeSideEffect)).Done()
                .WithMixins(typeof(MyCompositeMixin));
                assembler
                .NewService().OfTypes(typeof(MyService));
                architecture.AttributeProcessingEvent += new EventHandler <AttributeProcessingArgs>(architecture_AttributeProcessingEvent);

                var model = architecture.CreateModel();
                model.GenerateAndSaveAssemblies(emittingInfoCreator: Qi4CSCodeGenHelper.EmittingArgumentsCallback);
                var application = model.NewInstance(TestConstants.APPLICATION_NAME, TestConstants.APPLICATION_MODE, TestConstants.APPLICATION_VERSION);
                application.Activate();
                try
                {
                    var builder = application.StructureServices.NewPlainCompositeBuilder <MyComposite>();
                    builder.Prototype().ImmutableProperty = IMMUTABLE_PROPERTY;
                    var composite = builder.Instantiate();
                    this.TestComposite(composite);
                }
                finally
                {
                    application.Passivate();
                }
            });
        }
예제 #2
0
        protected override Core.Bootstrap.Assembling.ApplicationArchitecture <SingletonApplicationModel> BuildArchitecture()
        {
            var architecture = Qi4CSArchitectureFactory.NewSingletonArchitecture();

            architecture.CompositeAssembler
            .NewPlainComposite()
            .OfTypes(typeof(TestComposite))
            .WithMixins(typeof(TestCompositeMixin));

            return(architecture);
        }
예제 #3
0
            // Need to implement this method that will take care of creating Qi4CS architecture
            // and setting it up.
            protected override ApplicationArchitecture <SingletonApplicationModel> BuildArchitecture()
            {
                var architecture = Qi4CSArchitectureFactory.NewSingletonArchitecture();

                architecture.CompositeAssembler
                .NewPlainComposite()
                .OfTypes(typeof(MyDomainFunctionality))
                .WithMixins(typeof(MyDomainFunctionalityMixin));

                return(architecture);
            }
예제 #4
0
 private void DummyMethod()
 {
     #region PrivateCompositesCode2
     var architecture = Qi4CSArchitectureFactory.NewSingletonArchitecture();
     architecture.CompositeAssembler
     .NewPlainComposite()
     .OfTypes(typeof(MyComposite))
     .WithMixins(typeof(MyCompositeMixin));
     // MyCompositeState is not included in the .OfTypes method parameters.
     // Therefore, it will become a private composite type.
     #endregion
 }
        protected override ApplicationArchitecture <ApplicationModel <ApplicationSPI> > CreateApplicationArchitecture()
        {
            var  architecture  = Qi4CSArchitectureFactory.NewSingletonArchitecture();
            Type compositeType = null;

            Type[] mixins = null, concerns = null, sideEffects = null;
            this.SetupApplicationArchitecture(ref compositeType, ref mixins, ref concerns, ref sideEffects);
            var decl = architecture.CompositeAssembler.NewPlainComposite().OfTypes(compositeType);

            if (mixins != null)
            {
                decl.WithMixins(mixins);
            }
            if (concerns != null)
            {
                decl.WithConcerns(concerns);
            }
            if (sideEffects != null)
            {
                decl.WithSideEffects(sideEffects);
            }
            return(architecture);
        }
예제 #6
0
 protected override SingletonArchitecture CreateArchitecture()
 {
     return(Qi4CSArchitectureFactory.NewSingletonArchitecture());
 }