private static IStoreEvents InitializeEventSourcing()
 {
     var dispatcher = new NServiceBusCommitDispatcher();
     var eventStore = new PersistenceWireup(
         Wireup.Init()
             .UsingInMemoryPersistence()
             .UsingSynchronousDispatchScheduler(dispatcher)
             )
         .InitializeStorageEngine()
         .Build();
     return eventStore;
 }
コード例 #2
0
 private IStoreEvents InitializeEventSourcing()
 {
     var dispatcher = new NServiceBusCommitDispatcher();
     var eventStore = new PersistenceWireup(
         Wireup.Init()
             .UsingRavenPersistence("SecurityEventStore")
             .UsingAsynchronousDispatchScheduler(dispatcher)
             )
         .InitializeStorageEngine()
         .Build();
     return eventStore;
 }
コード例 #3
0
ファイル: Program.cs プロジェクト: thatpaulschofield/LifeMap
        public ViewBuilder()
        {
            _logger = log4net.LogManager.GetLogger(this.GetType());

            Type genericMessageHandlerType = typeof (IHandleMessages<>);
            var eventStore = new PersistenceWireup(
                Wireup.Init()
                    .UsingRavenPersistence("MembershipEventStore")
                )
                .InitializeStorageEngine()
                .Build();

            var container = BootstrapMessageHandlers();

            var commits = eventStore.Advanced.GetFrom(new DateTime(1900, 1, 1));
            foreach (var commit in commits)
            {
                foreach (var @event in commit.Events.Select(x => x.Body))
                {
                    Type eventType = @event.GetType();
                    _logger.InfoFormat("Handling event '{0}'", @eventType.Name);
                    Type specificEventHandlerType = genericMessageHandlerType.MakeGenericType(eventType);
                    Type enumerableOfEventHandlerType = typeof (IEnumerable<>).MakeGenericType(specificEventHandlerType);
                    var handlers = container.Resolve(enumerableOfEventHandlerType) as IEnumerable;
                    bool hadHandlers = false;
                    if (handlers != null)
                    {
                        foreach (var handler in handlers)
                        {
                            hadHandlers = true;
                            _logger.InfoFormat("  Processing event with handler {0}", handler.GetType());
                            var genericHandleMethod =
                                handler.GetType().GetMethods().Where(
                                    m => m.Name == "Handle" && m.GetParameters()[0].ParameterType == eventType).
                                    SingleOrDefault();
                            if (genericHandleMethod != null)
                            {
                                genericHandleMethod.Invoke(handler, new object[]{ @event });
                            }
                        }
                    }
                    if (!hadHandlers)
                    {
                        _logger.InfoFormat("No handlers found for event type {0}", eventType.Name);
                    }
                }
            }
        }
コード例 #4
0
 public static SerializationWireup UsingServiceStackJsonSerialization(this PersistenceWireup wireup)
 {
     return(wireup.UsingCustomSerialization(new ServiceStackJsonSerializer()));
 }
コード例 #5
0
 public static SerializationWireup UsingBinarySerialization(this PersistenceWireup wireup)
 {
     return(wireup.UsingCustomSerialization(new BinarySerializer()));
 }
コード例 #6
0
 public static SerializationWireup UsingCustomSerialization(this PersistenceWireup wireup, ISerialize serializer)
 {
     return(new SerializationWireup(wireup, serializer));
 }