コード例 #1
0
ファイル: EventConverter.cs プロジェクト: HAXEN/ncqrs
        /// <summary>
        /// Initializes a new instance of the <see cref="EventConverter"/> class with a given type resolver.
        /// </summary>
        /// <param name="typeResolver">The type resolver to use when looking up event names for a specific event type.</param>
        /// <exception cref="ArgumentNullException"><paramref name="typeResolver"/> is <value>null</value>.</exception>
        public EventConverter(IEventTypeResolver typeResolver)
        {
            Contract.Requires<ArgumentNullException>(typeResolver != null, "typeResolver");

            _converters = new Dictionary<string, IEventConverter>();
            _typeResolver = typeResolver;
        }
コード例 #2
0
        /// <summary>
        /// Initializes a new instance of the <see cref="EventConverter"/> class with a given type resolver.
        /// </summary>
        /// <param name="typeResolver">The type resolver to use when looking up event names for a specific event type.</param>
        /// <exception cref="ArgumentNullException"><paramref name="typeResolver"/> is <value>null</value>.</exception>
        public EventConverter(IEventTypeResolver typeResolver)
        {
            Contract.Requires <ArgumentNullException>(typeResolver != null, "typeResolver");

            _converters   = new Dictionary <string, IEventConverter>();
            _typeResolver = typeResolver;
        }
コード例 #3
0
        public void SetUp()
        {
            var typeResolver = new AttributeEventTypeResolver();

            typeResolver.AddEvent(typeof(AnEvent));
            _typeResolver = typeResolver;
        }
コード例 #4
0
        /// <summary>
        /// Initializes a new instance of the <see cref="JsonEventFormatter"/> class
        /// with a given type resolver.
        /// </summary>
        /// <param name="typeResolver">The <see cref="IEventTypeResolver"/> to use
        /// when resolving event types/names.</param>
        /// <exception cref="ArgumentNullException"><paramref name="typeResolver"/> is <value>null</value>.</exception>
        public JsonEventFormatter(IEventTypeResolver typeResolver)
        {
            Contract.Requires <ArgumentNullException>(typeResolver != null, "typeResolver");

            _typeResolver = typeResolver;
            _serializer   = new JsonSerializer();
        }
コード例 #5
0
ファイル: DomainEventFactory.cs プロジェクト: SabaCell/Nike
    public static DomainEvent Create(ResolvedEvent @event, IEventTypeResolver typeResolver)
    {
        var type = typeResolver.GetType(@event.Event.EventType);
        var body = Encoding.UTF8.GetString(@event.Event.Data);

        return((DomainEvent)JsonConvert.DeserializeObject(body, type));
    }
コード例 #6
0
        public JsonEventFormatterTests()
        {
            var typeResolver = new AttributeEventTypeResolver();

            typeResolver.AddEvent(typeof(AnEvent));
            _typeResolver = typeResolver;
        }
コード例 #7
0
        public InMemoryEventStore(
            IEventTypeResolver eventTypeResolver,
            Dictionary <string, List <string> > eventsContainer)

        {
            _eventTypeResolver = eventTypeResolver;
            _eventsContainer   = eventsContainer;
        }
コード例 #8
0
 public CosmosEventStore(IEventTypeResolver eventTypeResolver, string endpointUrl, string authorizationKey,
                         string databaseId, string containerId = "events")
 {
     _eventTypeResolver = eventTypeResolver;
     _client            = new CosmosClient(endpointUrl, authorizationKey);
     _databaseId        = databaseId;
     _containerId       = containerId;
 }
コード例 #9
0
        /// <summary>
        /// Initializes a new instance of the <see cref="JsonEventFormatter"/> class
        /// with a given type resolver.
        /// </summary>
        /// <param name="typeResolver">The <see cref="IEventTypeResolver"/> to use
        /// when resolving event types/names.</param>
        /// <exception cref="ArgumentNullException"><paramref name="typeResolver"/> is <value>null</value>.</exception>
        public JsonEventFormatter(IEventTypeResolver typeResolver)
        {
            Contract.Requires <ArgumentNullException>(typeResolver != null, "typeResolver");

            _typeResolver = typeResolver;
            _serializer   = new JsonSerializer {
                ContractResolver = NcqrsEnvironment.Get <IContractResolver>()
            };
        }
コード例 #10
0
ファイル: MsSqlServerEventStore.cs プロジェクト: HAXEN/ncqrs
        public MsSqlServerEventStore(String connectionString, IEventTypeResolver typeResolver, IEventConverter converter)
        {
            if (String.IsNullOrEmpty(connectionString)) throw new ArgumentNullException("connectionString");

            _connectionString = connectionString;
            _converter = converter ?? new NullEventConverter();
            _formatter = new JsonEventFormatter(typeResolver ?? new SimpleEventTypeResolver());
            _translator = new StringEventTranslator();
        }
コード例 #11
0
ファイル: EventConverterTests.cs プロジェクト: zonaid/ncqrs
        public EventConverterTests()
        {
            _typeResolver = MockRepository.GenerateStub <IEventTypeResolver>();
            _typeResolver
            .Stub(x => x.EventNameFor(typeof(AnEvent)))
            .TentativeReturn()
            .Return(EventName);

            _childConverter = MockRepository.GenerateStub <IEventConverter>();
        }
コード例 #12
0
        public void SetUp()
        {
            _typeResolver = MockRepository.GenerateStub<IEventTypeResolver>();
            _typeResolver
                .Stub(x => x.EventNameFor(typeof(AnEvent)))
                .TentativeReturn()
                .Return(EventName);

            _childConverter = MockRepository.GenerateStub<IEventConverter>();
        }
コード例 #13
0
ファイル: MongoDBEventStore.cs プロジェクト: otemnov/ncqrs
        public MongoDBEventStore(string connectionString = DEFAULT_DATABASE_URI, IEventTypeResolver typeResolver = null, IEventConverter converter = null)
        {
            _database = MongoDatabase.Create(connectionString);
            _commits = _database.GetCollection<MongoCommit>("Commits");
            _events = _database.GetCollection<BsonDocument>("SourcedEvents");

            _converter = converter ?? new NullEventConverter();
            _formatter = new JsonEventFormatter(typeResolver ?? new SimpleEventTypeResolver());
            _translator = new StringEventTranslator();

            EnsureIndexes();
        }
コード例 #14
0
ファイル: MongoDBEventStore.cs プロジェクト: zonaid/ncqrs
        public MongoDBEventStore(string connectionString = DEFAULT_DATABASE_URI, IEventTypeResolver typeResolver = null, IEventConverter converter = null)
        {
            _database = MongoDatabase.Create(connectionString);
            _commits  = _database.GetCollection <MongoCommit>("Commits");
            _events   = _database.GetCollection <BsonDocument>("SourcedEvents");

            _converter  = converter ?? new NullEventConverter();
            _formatter  = new JsonEventFormatter(typeResolver ?? new SimpleEventTypeResolver());
            _translator = new StringEventTranslator();

            EnsureIndexes();
        }
コード例 #15
0
        public PostgreServerEventStore(String connectionString, IEventTypeResolver typeResolver, IEventConverter converter)
        {
            if (String.IsNullOrEmpty(connectionString))
            {
                throw new ArgumentNullException("connectionString");
            }

            _connectionString = connectionString;
            _converter        = converter ?? new NullEventConverter();
            _formatter        = new JsonEventFormatter(typeResolver ?? new SimpleEventTypeResolver());
            _translator       = new StringEventTranslator();
        }
コード例 #16
0
 public CosmosProjectionEngine(IEventTypeResolver eventTypeResolver, IViewRepository viewRepository,
                               string endpointUrl, string authorizationKey, string databaseId, string eventContainerId = "events",
                               string leaseContainerId = "leases")
 {
     _eventTypeResolver = eventTypeResolver;
     _viewRepository    = viewRepository;
     _endpointUrl       = endpointUrl;
     _authorizationKey  = authorizationKey;
     _databaseId        = databaseId;
     _eventContainerId  = eventContainerId;
     _leaseContainerId  = leaseContainerId;
     _projections       = new List <IProjection>();
 }
コード例 #17
0
 public IEvent GetEvent(IEventTypeResolver eventTypeResolver)
 {
     try
     {
         Type eventType = eventTypeResolver.GetEventType(EventType);
         return((IEvent)EventData.ToObject(eventType));
     }
     catch (Exception ex)
     {
         throw new Exception("Failed to convert to an Event. Make sure the event " +
                             "class is in the correct namespace.");
     }
 }
コード例 #18
0
        public void SetUp()
        {
            _typeResolver = MockRepository.GenerateStub <IEventTypeResolver>();
            _typeResolver
            .Stub(x => x.EventNameFor(typeof(AnEvent)))
            .TentativeReturn()
            .Return(EventName);
            _typeResolver
            .Stub(x => x.ResolveType(EventName))
            .TentativeReturn()
            .Return(CreateEvent(EventName).GetType());

            _childConverter = MockRepository.GenerateStub <IEventConverter>();
        }
コード例 #19
0
 public OutboxWorker(ILogger <OutboxWorker> logger,
                     IDataStore store,
                     IEventBus eventBus,
                     IEventTypeResolver typeResolver,
                     IFilter filter,
                     IEventTransformerLookUp transformerLookUp)
 {
     _logger = logger;
     _store  = store;
     _store.SetSubscriber(this);
     _eventBus          = eventBus;
     _typeResolver      = typeResolver;
     _filter            = filter;
     _transformerLookUp = transformerLookUp;
 }
 internal EventStreamSubscriberSettings(IEventStoreHttpConnection connection, IEventHandlerResolver eventHandlerResolver, IStreamPositionRepository streamPositionRepository, ISubscriptionTimerManager subscriptionTimerManager, IEventTypeResolver eventTypeResolver, TimeSpan pollingInterval, int sliceSize, ILog log, TimeSpan messageProcessingStatsWindowPeriod, int messageProcessingStatsWindowCount, TimeSpan? longPollingTimeout, IEnumerable<IEventStreamSubscriberPerformanceMonitor> performanceMonitors, IStreamSubscriberIntervalMonitor streamSubscriberIntervalMonitor)
 {
     Connection = connection;
     EventHandlerResolver = eventHandlerResolver;
     StreamPositionRepository = streamPositionRepository;
     SubscriptionTimerManager = subscriptionTimerManager;
     EventTypeResolver = eventTypeResolver;
     DefaultPollingInterval = pollingInterval;
     SliceSize = sliceSize;
     Log = log;
     MessageProcessingStatsWindowPeriod = messageProcessingStatsWindowPeriod;
     MessageProcessingStatsWindowCount = messageProcessingStatsWindowCount;
     LongPollingTimeout = longPollingTimeout;
     PerformanceMonitors = performanceMonitors;
     SubscriberIntervalMonitor = streamSubscriberIntervalMonitor;
 }
コード例 #21
0
 internal EventStreamSubscriber(EventStreamSubscriberSettings settings)
 {
     _connection = settings.Connection;
     _eventHandlerResolver = settings.EventHandlerResolver;
     _streamPositionRepository = settings.StreamPositionRepository;
     _subscriptionTimerManager = settings.SubscriptionTimerManager;
     _eventTypeResolver = settings.EventTypeResolver;
     _defaultPollingInterval = settings.DefaultPollingInterval;
     _sliceSize = settings.SliceSize;
     _longPollingTimeout = settings.LongPollingTimeout;
     _performanceMonitors = settings.PerformanceMonitors;
     _log = settings.Log;
     
     StreamSubscriberMonitor = settings.SubscriberIntervalMonitor;
     AllEventsStats = new PerformanceStats(settings.MessageProcessingStatsWindowPeriod, settings.MessageProcessingStatsWindowCount);
     ProcessedEventsStats = new PerformanceStats(settings.MessageProcessingStatsWindowPeriod, settings.MessageProcessingStatsWindowCount);
 }
 internal EventStreamSubscriberSettings(IEventStoreHttpConnection connection, IEventHandlerResolver eventHandlerResolver, IStreamPositionRepository streamPositionRepository, ISubscriptionTimerManager subscriptionTimerManager, IEventTypeResolver eventTypeResolver, TimeSpan pollingInterval, int sliceSize, ILog log, TimeSpan messageProcessingStatsWindowPeriod, int messageProcessingStatsWindowCount, TimeSpan?longPollingTimeout, IEnumerable <IEventStreamSubscriberPerformanceMonitor> performanceMonitors, IStreamSubscriberIntervalMonitor streamSubscriberIntervalMonitor, int eventNotFoundRetryCount, TimeSpan eventNotFoundRetryDelay)
 {
     Connection               = connection;
     EventHandlerResolver     = eventHandlerResolver;
     StreamPositionRepository = streamPositionRepository;
     SubscriptionTimerManager = subscriptionTimerManager;
     EventTypeResolver        = eventTypeResolver;
     DefaultPollingInterval   = pollingInterval;
     SliceSize = sliceSize;
     Log       = log;
     MessageProcessingStatsWindowPeriod = messageProcessingStatsWindowPeriod;
     MessageProcessingStatsWindowCount  = messageProcessingStatsWindowCount;
     LongPollingTimeout        = longPollingTimeout;
     PerformanceMonitors       = performanceMonitors;
     SubscriberIntervalMonitor = streamSubscriberIntervalMonitor;
     EventNotFoundRetryCount   = eventNotFoundRetryCount;
     EventNotFoundRetryDelay   = eventNotFoundRetryDelay;
 }
コード例 #23
0
 public CosmosMigrationEngine(
     IEventTypeResolver eventTypeResolver,
     string endpointUrl,
     string authorizationKey,
     string databaseId,
     string originalEventContainerId,
     string outputEventContainerId,
     string leaseContainerId)
 {
     _eventTypeResolver        = eventTypeResolver;
     _endpointUrl              = endpointUrl;
     _authorizationKey         = authorizationKey;
     _databaseId               = databaseId;
     _originalEventContainerId = originalEventContainerId;
     _outputEventContainerId   = outputEventContainerId;
     _leaseContainerId         = leaseContainerId;
     _migrators = new List <IMigrator>();
 }
コード例 #24
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="eventTypeResolver"></param>
 /// <param name="viewRepository"></param>
 /// <param name="processorName"></param>
 /// <param name="eventEndpointUrl"></param>
 /// <param name="eventAuthorizationKey"></param>
 /// <param name="eventDatabaseId"></param>
 /// <param name="leaseEndpointUrl"></param>
 /// <param name="leaseAuthorizationKey"></param>
 /// <param name="leaseDatabaseId"></param>
 /// <param name="eventContainerId"></param>
 /// <param name="leaseContainerId"></param>
 /// <param name="epochStartTime">Sets the time (exclusive) to start looking for changes after.</param>
 public CosmosDBProjectionEngine(IEventTypeResolver eventTypeResolver, IViewRepository viewRepository,
                                 string processorName,
                                 string eventEndpointUrl, string eventAuthorizationKey, string eventDatabaseId,
                                 string leaseEndpointUrl, string leaseAuthorizationKey, string leaseDatabaseId, string eventContainerId,
                                 string leaseContainerId, long epochStartTime)
 {
     _eventTypeResolver     = eventTypeResolver;
     _viewRepository        = viewRepository;
     _processorName         = processorName;
     _eventEndpointUrl      = eventEndpointUrl;
     _eventAuthorizationKey = eventAuthorizationKey;
     _eventDatabaseId       = eventDatabaseId;
     _leaseEndpointUrl      = leaseEndpointUrl;
     _leaseAuthorizationKey = leaseAuthorizationKey;
     _leaseDatabaseId       = leaseDatabaseId;
     _eventContainerId      = eventContainerId;
     _leaseContainerId      = leaseContainerId;
     _projections           = new List <IProjection>();
     _epochStartTime        = epochStartTime;
 }
コード例 #25
0
        internal EventStreamSubscriber(EventStreamSubscriberSettings settings)
        {
            _connection               = settings.Connection;
            _eventHandlerResolver     = settings.EventHandlerResolver;
            _streamPositionRepository = settings.StreamPositionRepository;
            _subscriptionTimerManager = settings.SubscriptionTimerManager;
            _eventTypeResolver        = settings.EventTypeResolver;
            _defaultPollingInterval   = settings.DefaultPollingInterval;
            _sliceSize           = settings.SliceSize;
            _longPollingTimeout  = settings.LongPollingTimeout;
            _performanceMonitors = settings.PerformanceMonitors;
            _log = settings.Log;

            _eventNotFoundRetryCount = settings.EventNotFoundRetryCount;
            _eventNotFoundRetryDelay = settings.EventNotFoundRetryDelay;

            StreamSubscriberMonitor = settings.SubscriberIntervalMonitor;
            AllEventsStats          = new PerformanceStats(settings.MessageProcessingStatsWindowPeriod, settings.MessageProcessingStatsWindowCount);
            ProcessedEventsStats    = new PerformanceStats(settings.MessageProcessingStatsWindowPeriod, settings.MessageProcessingStatsWindowCount);
        }
コード例 #26
0
 public CosmosValidatorEngine(
     IEventTypeResolver eventTypeResolver,
     string endpointUrl,
     string authorizationKey,
     string databaseId,
     string originalEventContainerId,
     string migratedEventContainerId,
     string validationSuccessContainerId,
     string validationFailureContainerId,
     string leaseContainerId)
 {
     _eventTypeResolver            = eventTypeResolver;
     _endpointUrl                  = endpointUrl;
     _authorizationKey             = authorizationKey;
     _databaseId                   = databaseId;
     _originalEventContainerId     = originalEventContainerId;
     _migratedEventContainerId     = migratedEventContainerId;
     _validationSuccessContainerId = validationSuccessContainerId;
     _validationFailureContainerId = validationFailureContainerId;
     _leaseContainerId             = leaseContainerId;
     _validators                   = new List <IValidator>();
 }
コード例 #27
0
        /// <summary>Initializes a new instance of the <see cref="MsSqlServerEventStore"/> class.</summary>
        /// <param name="connectionString">The database connection string to the database.</param>
        /// <param name="applicationName">The application name that is used to isolate events and surces etc...</param>
        /// <param name="typeResolver">Indicates the <see cref="IEventTypeResolver"/> to use.</param>
        /// <param name="converter">Indicates the <see cref="IEventConverter"/> to use.</param>
        public MultiAppSqlServerEventStore(
            string connectionString,
            string applicationName,
            IEventTypeResolver typeResolver,
            IEventConverter converter)
        {
            if (String.IsNullOrEmpty(connectionString))
            {
                throw new ArgumentNullException("connectionString");
            }

            if (String.IsNullOrEmpty(applicationName))
            {
                throw new ArgumentNullException("applicationName");
            }

            _connectionString = connectionString;
            _applicationName  = applicationName;
            _converter        = converter ?? new NullEventConverter();
            _formatter        = new JsonEventFormatter(typeResolver ?? new SimpleEventTypeResolver());
            _translator       = new StringEventTranslator();

            InitializeEventStore();
        }
コード例 #28
0
 public JsonEventFormatterTests()
 {
     var typeResolver = new AttributeEventTypeResolver();
     typeResolver.AddEvent(typeof(AnEvent));
     _typeResolver = typeResolver;
 }
コード例 #29
0
 public EventStoreRepository(IEventTypeResolver eventTypeResolver, IEventStoreConnection connection)
 {
     _connection        = connection;
     _eventTypeResolver = eventTypeResolver;
 }
コード例 #30
0
 public void SetUp()
 {
     var typeResolver = new AttributeEventTypeResolver();
     typeResolver.AddEvent(typeof(AnEvent));
     _typeResolver = typeResolver;
 }
コード例 #31
0
 public JsonEventSerializer(IEventTypeResolver eventTypeResolver)
 {
     this.eventTypeResolver = eventTypeResolver;
 }
コード例 #32
0
ファイル: Repository.cs プロジェクト: razvalex/WanVet
 public Repository(IEventStoreConnection eventStoreConnection, IEventTypeResolver eventTypeResolver)
 {
     _eventStoreConnection = eventStoreConnection;
     _eventTypeResolver    = eventTypeResolver;
 }
 public EventStreamSubscriberSettingsBuilder WithCustomEventTypeResolver(IEventTypeResolver eventTypeResolver)
 {
     _eventTypeResolver = eventTypeResolver;
     return this;
 }
コード例 #34
0
        public IEvent GetEvent(IEventTypeResolver eventTypeResolver)
        {
            Type eventType = eventTypeResolver.GetEventType(EventType);

            return((IEvent)EventData.ToObject(eventType));
        }
コード例 #35
0
ファイル: DomainEventFactory.cs プロジェクト: SabaCell/Nike
 public static List <DomainEvent> Create(List <ResolvedEvent> events, IEventTypeResolver typeResolver)
 {
     return(events.Select(a => Create(a, typeResolver)).ToList());
 }
コード例 #36
0
 public EventStreamSubscriberSettingsBuilder WithCustomEventTypeResolver(IEventTypeResolver eventTypeResolver)
 {
     _eventTypeResolver = eventTypeResolver;
     return(this);
 }