Exemplo n.º 1
0
        public static void Start(IWireUpEventStore eventStorePersistanceWireUp)
        {
            log4net.Config.XmlConfigurator.Configure();

            CreateMaps();

            ObjectFactory.Configure(containerToConfigure =>
            {
                containerToConfigure.Scan(scanner =>
                {
                    scanner.AssembliesFromApplicationBaseDirectory(assembly => assembly.FullName.Contains("Example"));
                    scanner.AddAllTypesOf <IStartup>();
                    scanner.WithDefaultConventions();
                    scanner.SingleImplementationsOfInterface();
                });
                containerToConfigure.For <ILog>().Use(LogManager.GetLogger(typeof(StructuremapMvc)));
                containerToConfigure.For <IMappingEngine>().Use(Mapper.Engine);
                containerToConfigure.For <IIdentity>().Use(() => HttpContext.Current.User.Identity);
            });

            var container = ObjectFactory.Container;

            foreach (var task in container.GetAllInstances <IStartup>())
            {
                task.Execute(container);
            }

            ObjectFactory.Configure(containerToConfigure =>
            {
                containerToConfigure.For <IStoreEvents>().Singleton().Use(
                    eventStorePersistanceWireUp.Execute(Wireup.Init())
                    .UsingSynchronousDispatchScheduler(
                        new DelegateMessageDispatcher(x =>
                {
                    var eventPublisher = container.GetInstance <IEventPublisher>();
                    foreach (var eventMessage in x.Events)
                    {
                        eventPublisher.PublishEvent(eventMessage.Body);
                    }
                }))
                    .Build());
            });

            DependencyResolver.SetResolver(new StructureMapDependencyResolver(container));
            GlobalConfiguration.Configuration.DependencyResolver = new StructureMapDependencyResolver(container);
        }
Exemplo n.º 2
0
        public static void Start(IWireUpEventStore eventStorePersistanceWireUp)
        {
            log4net.Config.XmlConfigurator.Configure();

            CreateMaps();

            ObjectFactory.Configure(containerToConfigure =>
            {
                containerToConfigure.Scan(scanner =>
                {
                    scanner.AssembliesFromApplicationBaseDirectory(assembly => assembly.FullName.Contains("Example"));
                    scanner.AddAllTypesOf<IStartup>();
                    scanner.WithDefaultConventions();
                    scanner.SingleImplementationsOfInterface();
                });
                containerToConfigure.For<ILog>().Use(LogManager.GetLogger(typeof(StructuremapMvc)));
                containerToConfigure.For<IMappingEngine>().Use(Mapper.Engine);
                containerToConfigure.For<IIdentity>().Use(() => HttpContext.Current.User.Identity);
            });

            var container = ObjectFactory.Container;

            foreach (var task in container.GetAllInstances<IStartup>())
            {
                task.Execute(container);
            }

            ObjectFactory.Configure(containerToConfigure =>
            {
                containerToConfigure.For<IStoreEvents>().Singleton().Use(
                    eventStorePersistanceWireUp.Execute(Wireup.Init())
                        .UsingSynchronousDispatchScheduler(
                            new DelegateMessageDispatcher(x =>
                            {
                                var eventPublisher = container.GetInstance<IEventPublisher>();
                                foreach (var eventMessage in x.Events)
                                {
                                    eventPublisher.PublishEvent(eventMessage.Body);
                                }
                            }))
                        .Build());
            });

            DependencyResolver.SetResolver(new StructureMapDependencyResolver(container));
            GlobalConfiguration.Configuration.DependencyResolver = new StructureMapDependencyResolver(container);
        }