/// <summary>
        /// Use this method to seed the in memory state with route network data
        /// </summary>
        public void Seed(List <RouteNetworkEditOperationOccuredEvent> editOperationEvents)
        {
            var routeNetworkEventHandler = new RouteNetworkEventHandler(_loggerFactory, _state);

            foreach (var editOperationEvent in editOperationEvents)
            {
                routeNetworkEventHandler.HandleEvent(editOperationEvent);
            }
        }
コード例 #2
0
        public RouteNetworkEventConsumer(ILoggerFactory loggerFactory, IEventStore eventStore, IOptions <KafkaSetting> kafkaSetting, IOptions <EventStoreDatabaseSetting> eventStoreDatabaseSetting, IOptions <GeoDatabaseSetting> geoDatabaseSetting, IToposTypedEventObservable <RouteNetworkEditOperationOccuredEvent> eventDispatcher, RouteNetworkEventHandler routeNetworkEventHandler, IRouteNetworkState routeNetworkState, ICommandDispatcher commandDispatcher, IQueryDispatcher queryDispatcher)
        {
            _loggerFactory             = loggerFactory;
            _logger                    = _loggerFactory.CreateLogger <RouteNetworkEventConsumer>();
            _eventStore                = eventStore;
            _kafkaSetting              = kafkaSetting.Value;
            _eventStoreDatabaseSetting = eventStoreDatabaseSetting.Value;
            _geoDatabaseSetting        = geoDatabaseSetting.Value;

            _commandDispatcher = commandDispatcher;
            _queryDispatcher   = queryDispatcher;

            _eventDispatcher          = eventDispatcher;
            _routeNetworkEventHandler = routeNetworkEventHandler;
            _routeNetworkState        = routeNetworkState;
        }
        /// <summary>
        /// Use this method to seed the in memory state with route network json data
        /// </summary>
        public void Seed(string json)
        {
            JsonConvert.DefaultSettings = (() =>
            {
                var settings = new JsonSerializerSettings();
                settings.ContractResolver = new CamelCasePropertyNamesContractResolver();
                settings.Converters.Add(new StringEnumConverter());
                settings.TypeNameHandling = TypeNameHandling.Auto;
                return(settings);
            });

            var editOperationEvents = JsonConvert.DeserializeObject <List <RouteNetworkEditOperationOccuredEvent> >(json);

            var routeNetworkEventHandler = new RouteNetworkEventHandler(_loggerFactory, this, _eventStore, _commandDispatcher, _queryDispatcher);

            foreach (var editOperationEvent in editOperationEvents)
            {
                routeNetworkEventHandler.HandleEvent(editOperationEvent);
            }

            FinishLoadMode();
        }