Beispiel #1
0
 private DiagramOperationResult RemoveNodeCore(ModelNodeId nodeId, DiagramOperationResult diagramOperationResult)
 {
     return(TryGetNode(nodeId)
            .Match(
                some => RemoveChildNodes(some, RemoveAllConnectorsOfNode(some, diagramOperationResult))
                .Remove(some)
                .Add(new DiagramNodeRemovedEvent(some)),
                () => diagramOperationResult
                ));
 }
Beispiel #2
0
        private DiagramEvent CreateDiagramEvent(DiagramOperationResult diagramOperationResult)
        {
            if (!diagramOperationResult.Events.Any())
            {
                return(DiagramEvent.None(this));
            }

            var newDiagram = CreateInstance(Model, diagramOperationResult.Nodes, diagramOperationResult.Connectors);

            return(new DiagramEvent(newDiagram, diagramOperationResult.Events));
        }
Beispiel #3
0
 private DiagramOperationResult RemoveConnectorCore(ModelRelationshipId relationshipId, DiagramOperationResult diagramOperationResult)
 {
     return(TryGetConnector(relationshipId)
            .Match(
                some => diagramOperationResult
                .Remove(some)
                .Add(new DiagramConnectorRemovedEvent(some)),
                () => diagramOperationResult
                ));
 }
Beispiel #4
0
 private DiagramOperationResult RemoveAllConnectorsOfNode([NotNull] IDiagramNode node, DiagramOperationResult diagramOperationResult)
 {
     return(_allShapesGraph.GetAllEdges(node.Id)
            .Aggregate(diagramOperationResult, (current, connector) => RemoveConnectorCore(connector.Id, current)));
 }
Beispiel #5
0
 private DiagramOperationResult RemoveChildNodes([NotNull] IDiagramNode node, DiagramOperationResult diagramOperationResult)
 {
     return(GetChildNodes(node.Id)
            .Aggregate(diagramOperationResult, (current, childNode) => RemoveNodeCore(childNode.Id, current)));
 }