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); } }
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; }
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; }