private async Task <(RouteSegment, RouteSegmentAdded)> InsertRouteSegmentClone(RouteSegment routeSegment) { var routeSegmentClone = CreateRouteSegmentClone(routeSegment); await _geoDatabase.InsertRouteSegment(routeSegmentClone); var startRouteNode = (await _geoDatabase.GetIntersectingStartRouteNodes(routeSegmentClone)).FirstOrDefault(); var endRouteNode = (await _geoDatabase.GetIntersectingEndRouteNodes(routeSegmentClone)).FirstOrDefault(); var routeSegmentAddedEvent = _routeSegmentEventFactory.CreateAdded(routeSegmentClone, startRouteNode, endRouteNode); return(routeSegmentClone, routeSegmentAddedEvent); }
private async Task <List <RouteNetworkEvent> > InsertReplacementRouteSegments(List <RouteSegment> routeSegments) { var routeNetworkEvents = new List <RouteNetworkEvent>(); foreach (var routeSegment in routeSegments) { await _geoDatabase.InsertRouteSegment(routeSegment); var startRouteNode = (await _geoDatabase.GetIntersectingStartRouteNodes(routeSegment)).FirstOrDefault(); var endRouteNode = (await _geoDatabase.GetIntersectingEndRouteNodes(routeSegment)).FirstOrDefault(); var routeSegmentAddedEvent = _routeSegmentEventFactory.CreateAdded(routeSegment, startRouteNode, endRouteNode); routeNetworkEvents.Add(routeSegmentAddedEvent); } return(routeNetworkEvents); }