Esempio n. 1
0
        /// <summary>
        /// 启动项注册
        /// </summary>
        protected void ConfigureServices()
        {
            AutofacLocator autofacLocator = new AutofacLocator(); //创建IOC容器

            autofacLocator.Register();                            //注册服务
            BootStrapper.Initialize(autofacLocator);
        }
Esempio n. 2
0
        /// <summary>
        /// 启动项注册
        /// </summary>
        protected void ConfigureServices()
        {
            AutofacLocator autofacLocator = new AutofacLocator();  //创建IOC容器
            Assembly       asm            = Assembly.GetExecutingAssembly();

            autofacLocator.Register(asm);   //注册服务
            BootStrapper.Initialize(autofacLocator, asm);
        }
Esempio n. 3
0
        public App()
        {
            InitializeComponent();
            Constants.InitAsync(Instance);
            AutofacLocator autofac = new AutofacLocator();

            autofac.Register();
            ServiceProvider.RegisterSerivceLocator(autofac);
            MainPage = new NavigationPage(new MainPage());
        }
Esempio n. 4
0
        protected void ConfigureServices()
        {
            AutofacLocator   locator = new AutofacLocator();
            ContainerBuilder builder = new ContainerBuilder();

            builder.RegisterType(typeof(LoginCenter)).Named("LoginCenter", typeof(IModuleDialog));


            locator.Register(builder);
            AutofacProvider.RegisterServiceLocator(locator);
        }
Esempio n. 5
0
        protected void ConfigureServices()
        {
            AutofacLocator   locator = new AutofacLocator();
            ContainerBuilder builder = new ContainerBuilder();

            builder.RegisterType <ConsumptionService>().As <IConsumptionService>();
            builder.RegisterType(typeof(LoginCenter)).Named("LoginCenter", typeof(IModuleDialog));
            builder.RegisterType(typeof(MainCenter)).Named("MainCenter", typeof(IModuleDialog));
            builder.RegisterType(typeof(SkinCenter)).Named("SkinCenter", typeof(IModule));
            builder.RegisterType(typeof(UserCenter)).Named("UserCenter", typeof(IModule));
            builder.RegisterType(typeof(MenuCenter)).Named("MenuCenter", typeof(IModule));
            builder.RegisterType(typeof(BasicCenter)).Named("BasicCenter", typeof(IModule));
            locator.Register(builder);
            AutofacProvider.RegisterServiceLocator(locator);
        }
Esempio n. 6
0
        static void Main()
        {
            //var cnt = ConnectionSettings
            //    .Create()
            //    .SetDefaultUserCredentials(new UserCredentials("admin", "changeit"))
            //    .Build();
            //var eventStoreConnection = EventStoreConnection.Create(cnt, new IPEndPoint(IPAddress.Loopback, 1113));
            //eventStoreConnection.ConnectAsync().Wait();

            //eventStoreConnection.SubscribeToStreamFrom(
            //        stream: "Aggregate"+"View",
            //        lastCheckpoint: StreamCheckpoint.StreamStart,
            //        resolveLinkTos: true,
            //        eventAppeared: (upSubscription, @event) =>
            //        {
            //            var eventType = Type.GetType(@event.Event.EventType);
            //        }, userCredentials: new UserCredentials("admin", "changeit"));
            //Console.ReadKey();
            Mapper.CreateMap <AggregateCreated, AnotherAggregateCreated>()
            .ConstructUsing(created => new AnotherAggregateCreated(created.Identity))
            .ForMember(x => x.Identity, x => x.Ignore());
            Mapper.CreateMap <AggregateNameCreated, AggregateNameCreated>()
            .ConstructUsing(created => new AggregateNameCreated(created.Identity, created.Name))
            .ForMember(x => x.Identity, x => x.Ignore())
            .ForMember(x => x.Name, x => x.Ignore());
            Mapper.CreateMap <AnotherAggregateCreated, AggregateCreated>()
            .ConstructUsing(created => new AggregateCreated(created.Identity))
            .ForMember(x => x.Identity, x => x.Ignore());
            //using (MemoryStream tempStream = new MemoryStream())
            //{
            //    BinaryFormatter binFormatter = new BinaryFormatter(null,
            //        new StreamingContext(StreamingContextStates.Clone));

            //    binFormatter.Serialize(tempStream, envel);
            //    tempStream.Seek(0, SeekOrigin.Begin);

            //    var clone = binFormatter.Deserialize(tempStream);
            //}
            //var envelDto = new EnvelopeDto<C>
            //{
            //    Body = envel.Body,
            //    IsRedelivered = false,
            //    MessageId = envel.MessageId
            //};
            //var h = JsonConvert.SerializeObject(envelDto);
            //var t = (EnvelopeDto<C>)JsonConvert.DeserializeObject(h, typeof(EnvelopeDto<C>));
            //Envelope<C> qq = t;
            //var envAc = Activator.CreateInstance(typeof (Envelope<C>), t.MessageId, t.Body, false);
            var containerBuilder = new ContainerBuilder();

            containerBuilder.RegisterModule <Cqrs.Messaging.Rabbitmq.TypeRegistrationModule>();
            containerBuilder.RegisterModule <Cqrs.Domain.Eventing.TypeRegistrationModule>();
            containerBuilder.RegisterModule <Commands.Core.TypeRegistrationModule>();
            containerBuilder.RegisterModule <Cqrs.ObjectMapping.TypeRegistrationModule>();
            containerBuilder.RegisterModule <Cqrs.AntiCorruption.TypeRegistrationModule>();
            containerBuilder.RegisterModule <Cqrs.Messaging.Core.TypeRegistrationModule>();
            containerBuilder.RegisterModule <Cqrs.Persistance.EventSourcing.Core.TypeRegistrationModule>();
            containerBuilder.RegisterModule <Cqrs.Persistance.EventSourcing.EventStore.TypeRegistrationModule>();
            containerBuilder.RegisterModule <Cqrs.AntiCorruption.TypeRegistrationModule>();
            containerBuilder.RegisterType <SnapshotDataContext>()
            .As <ISnapshotDataContext>()
            .SingleInstance();
            containerBuilder.RegisterType <CreateAggregateCommandHandler>()
            .AsImplementedInterfaces().InstancePerDependency();
            containerBuilder.RegisterType <ChangeAggregateNameCommandHandler>()
            .AsImplementedInterfaces().InstancePerDependency();
            containerBuilder.RegisterType <AggregateCreatedEventHandler>()
            .AsImplementedInterfaces().InstancePerDependency();
            containerBuilder.RegisterType <AggregateNameEventHandler>()
            .AsImplementedInterfaces().InstancePerDependency();
            containerBuilder.RegisterType <AggregateProjection>()
            .AsImplementedInterfaces().InstancePerDependency();
            //var j = typeof(RestoreEventSourcedAggregateCommandHandler<,,>)
            //    .GetInterfaces().ToList();
            //containerBuilder.RegisterGeneric(typeof(RestoreEventSourcedAggregateCommandHandler<,,>))
            //    .As(typeof(ICommandHandler<,>))
            //    .AsSelf()
            //    .InstancePerDependency();

            var container = containerBuilder.Build();

            var ch             = container.Resolve <ICommandHandler <RestoreEventSourcedAggregateCommand <AggregateIdentity, AggregateSnapshot>, RestoreAggregateCommandResult <Aggregate> > >();
            var autofacAdapter = new AutofacLocator(container);
            var gatewayFactory = container.Resolve <IGatewayFactory>();
            var gateWayBuilder = new GatewayConfigurationBuilder(gatewayFactory, autofacAdapter);
            var gateWay        = gateWayBuilder
                                 .WithEventSubscriberThreads(10)
                                 .WithCommandHandlerThreads(10)
                                 .WithPrefetch(50)
                                 .Build();

            gateWay
            .ForCommands()
            .Handle <C>()
            .Handle <Ch>();

            gateWay.ForEvents()
            .Subscribe <AnotherAggregateCreated>()
            .Subscribe <AggregateNameCreated>();

            ProjectionGatewayConfigurationBuilder
            .Create(autofacAdapter)
            .For("Aggregate")
            .SubscribeTo <AggregateCreated>()
            .SubscribeTo <AggregateNameCreated>()
            .Build()
            .UseEventStore(
                ConnectionSettings.Create()
                .SetDefaultUserCredentials(new UserCredentials("admin", "changeit"))
                .KeepRetrying()
                .UseConsoleLogger()
                .Build(),
                new IPEndPoint(IPAddress.Loopback, 2113),
                new IPEndPoint(IPAddress.Loopback, 1113)
                );

//            var userCredentials = new UserCredentials("admin", "changeit");
//            var projectionManager = new ProjectionsManager(new ConsoleLogger(), new IPEndPoint(IPAddress.Loopback, 2113), new TimeSpan(1, 0, 0));
//            var byCategoryProjectionStatus = ((JObject)JsonConvert.DeserializeObject(projectionManager.GetStatusAsync("$by_category", userCredentials).Result))["status"].ToString();
//            var streamByCategoryProjectionStatus = ((JObject)JsonConvert.DeserializeObject(projectionManager.GetStatusAsync("$stream_by_category", userCredentials).Result))["status"].ToString();

//            if (byCategoryProjectionStatus == "Stopped")
//            {
//                projectionManager.EnableAsync("$by_category", userCredentials).Wait();
//            }

//            if (streamByCategoryProjectionStatus == "Stopped")
//            {
//                projectionManager.EnableAsync("$stream_by_category", userCredentials).Wait();
//            }

//            const string projectionQuery = @"fromCategory('AggregateRoot')
//                                    .foreachStream()
//                                    .whenAny(function(state, event){
//                                         linkTo('AggregateBoundedContext', event);
//                                    })";
//            string aggregateCreatedProjectionQuery = @"fromCategory('AggregateRoot')
//                                    .foreachStream()
//                                    .when({'" + typeof(AggregateCreated).FullName + "':" +
//                                                     "function(state, event){linkTo('AggregateCreatedView', event);}" +
//                                                     "});";
//            string aggregateNameCreatedProjectionQuery = @"
//options({
//processingLag: 500
//});
//fromCategory('AggregateRoot')
//                                    .foreachStream()
//                                    .when({'" + typeof(AggregateNameCreated).FullName + "':" +
//                                                     "function(state, event){linkTo('AggregateNameCreatedView', event);}" +
//                                                     "});";
//            projectionManager.CreateContinuousAsync("AggregateProjection", projectionQuery, userCredentials).Wait();
            //projectionManager.CreateContinuousAsync("AggregateCreatedProjection", aggregateCreatedProjectionQuery, userCredentials).Wait();
            //projectionManager.CreateContinuousAsync("AggregateNameCreatedProjection", aggregateNameCreatedProjectionQuery, userCredentials).Wait();


            Console.ReadKey();
            var bus                    = container.Resolve <ICommandBus>();
            var aggregateId            = Guid.NewGuid();
            var anotherAggregateId     = Guid.NewGuid();
            var createAggregateCommand = new C(new AggregateIdentity(aggregateId), "NewAggregate");

            bus.Dispatch(createAggregateCommand);
            //bus.Dispatch(new C(new AggregateIdentity(Guid.NewGuid()), "AAA"));
            Console.ReadKey();

            var changeAggregateNameCommand = new Ch(2, new AggregateIdentity(aggregateId), "ChangedName");

            bus.Dispatch(changeAggregateNameCommand);

            Console.ReadKey();
            var changeAggregateNameCommand1 = new Ch(3, new AggregateIdentity(aggregateId), "ChangedName1");

            bus.Dispatch(changeAggregateNameCommand1);
            Console.ReadKey();

            var createAggregateCommand1 = new C(new AggregateIdentity(anotherAggregateId), "NewAggregate");

            bus.Dispatch(createAggregateCommand1);
            Console.ReadKey();
            var changeAggregateNameCommand13 = new Ch(2, new AggregateIdentity(anotherAggregateId), "ChangedName");

            bus.Dispatch(changeAggregateNameCommand13);

            Console.ReadKey();
            var changeAggregateNameCommand12 = new Ch(3, new AggregateIdentity(anotherAggregateId), "ChangedName1");

            bus.Dispatch(changeAggregateNameCommand12);

            Console.ReadKey();
        }