Exemplo n.º 1
0
        public static void Rebuild(string redisDbUri)
        {
            Argument.ExpectNotNullOrWhiteSpace(() => redisDbUri);

            var readModelAssembly = Assembly.Load(new AssemblyName("ECom.ReadModel"));
            var bus = new Bus.Bus(false);
            var eventStore = new EventStore.Redis.EventStore(redisDbUri, bus);

            var dtoManager = new RedisDtoManager(redisDbUri);

            var dtoTypes = readModelAssembly.GetTypes().Where(t => !t.IsAbstract && typeof(Dto).IsAssignableFrom(t));
            foreach (var dtoType in dtoTypes)
            {
                MethodInfo genericDeleteAll = dtoManager.GetType().GetMethod("DeleteAll").MakeGenericMethod(new[] { dtoType });
                genericDeleteAll.Invoke(dtoManager, new object[0]);
            }

            MessageHandlersRegister.RegisterEventHandlers(new [] { readModelAssembly }, bus, dtoManager);

            var allEvents = eventStore.GetAllEvents();
            foreach (var e in allEvents)
            {
                bus.Publish(e);
            }
        }
Exemplo n.º 2
0
        private static void InitServices()
        {
            var eventStoreConnString = ConfigurationManager.AppSettings["REDISCLOUD_URL_STRIPPED"];

            var bus = new Bus.Bus();
            var eventStore = new EventStore.Redis.EventStore(eventStoreConnString, bus);

            ServiceLocator.Bus = bus;
            ServiceLocator.EventStore = eventStore;
        }
Exemplo n.º 3
0
        private static void Init()
        {
            var bus = new Bus.Bus(false);
            var redisUri = ConfigurationManager.AppSettings["REDISCLOUD_URL_STRIPPED"];
            var eventStore = new EventStore.Redis.EventStore(redisUri, bus);

            var dtoManager = new RedisDtoManager(redisUri);

            var commandHandlersAssemblies = new []
            {
                Assembly.Load(new AssemblyName("ECom.Domain"))
            };

            ReadModelRebuilder.Rebuild(redisUri);

            MessageHandlersRegister.RegisterCommandHandlers(commandHandlersAssemblies, bus, eventStore);
            RegisterEventHandlers(bus, dtoManager);

            ServiceLocator.Bus = bus;
            ServiceLocator.DtoManager = dtoManager;
            ServiceLocator.IdentityGenerator = new RedisIdGenerator(redisUri);
            ServiceLocator.EventStore = eventStore;
        }