public void HandleEvent(RouteNetworkEditOperationOccuredEvent request) { _logger.LogDebug("Got route network edit opreation occured message:"); _logger.LogDebug(JsonConvert.SerializeObject(request, Formatting.Indented)); var trans = _networkState.GetTransaction(); if (request.RouteNetworkCommands != null) { foreach (var command in request.RouteNetworkCommands) { if (command.RouteNetworkEvents != null) { foreach (var routeNetworkEvent in command.RouteNetworkEvents) { switch (routeNetworkEvent) { case RouteNodeAdded domainEvent: HandleEvent(domainEvent, trans); break; case RouteNodeMarkedForDeletion domainEvent: HandleEvent(domainEvent, trans); break; case RouteSegmentAdded domainEvent: HandleEvent(domainEvent, trans); break; case RouteSegmentMarkedForDeletion domainEvent: HandleEvent(domainEvent, trans); break; case RouteSegmentRemoved domainEvent: HandleEvent(domainEvent, trans); break; } } } } } _networkState.FinishWithTransaction(); }