示例#1
0
        private void InnerConduitAdded(SingleConduitInfo singleConduitInfo, MultiConduitInnerConduitAdded @event)
        {
            singleConduitInfo.MultiConduitId = @event.MultiConduitId;
            singleConduitInfo.Kind           = ConduitKindEnum.InnerConduit;
            singleConduitInfo.SequenceNumber = @event.MultiConduitIndex;
            singleConduitInfo.Id             = @event.ConduitInfo.Id;
            singleConduitInfo.Color          = @event.ConduitInfo.Color;
            singleConduitInfo.Shape          = @event.ConduitInfo.Shape;
            singleConduitInfo.ColorMarking   = @event.ConduitInfo.ColorMarking;
            singleConduitInfo.TextMarking    = @event.ConduitInfo.TextMarking;
            singleConduitInfo.Name           = @event.ConduitInfo.Name;
            singleConduitInfo.InnerDiameter  = @event.ConduitInfo.InnerDiameter;
            singleConduitInfo.OuterDiameter  = @event.ConduitInfo.OuterDiameter;

            // Create segment info (as is looks before any cuts or connections)
            var multiConduitInfo = conduitNetworkQueryService.GetMultiConduitInfo(@event.MultiConduitId);

            var segment = new SingleConduitSegmentInfo();

            segment.Id              = Guid.NewGuid();
            segment.SequenceNumber  = 1;
            segment.ConduitId       = @event.ConduitInfo.Id;
            segment.FromRouteNodeId = routeNetworkQueryService.GetWalkOfInterestInfo(multiConduitInfo.WalkOfInterestId).StartNodeId;
            segment.ToRouteNodeId   = routeNetworkQueryService.GetWalkOfInterestInfo(multiConduitInfo.WalkOfInterestId).EndNodeId;

            singleConduitInfo.Segments = new List <ISegment>()
            {
                segment
            };


            conduitNetworkQueryService.UpdateSingleConduitInfo(singleConduitInfo);
        }
示例#2
0
        public void InnerConduitCut(SingleConduitInfo singleConduitInfo, MultiConduitInnerConduitCut @event)
        {
            // Get the multi conduit
            var multiConduit = conduitNetworkQueryService.GetMultiConduitInfo(@event.MultiConduitId);

            // Get the walk of interest of the multi conduit
            var walkOfInterest = routeNetworkQueryService.GetWalkOfInterestInfo(multiConduit.WalkOfInterestId);

            // Get the node
            var nodeWhereToCut = routeNetworkQueryService.GetRouteNodeInfo(@event.PointOfInterestId);

            ConduitCutter.CutConduit(singleConduitInfo, walkOfInterest, nodeWhereToCut);

            conduitNetworkQueryService.UpdateSingleConduitInfo(singleConduitInfo);
        }