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