private void ShowAsParentNode([NotNull] IModelNode addedModelNode, [NotNull] IModel model)
        {
            var diagram    = DiagramService.LatestDiagram;
            var childNodes = model.GetRelatedNodes(addedModelNode.Id, CommonDirectedModelRelationshipTypes.Contained);

            if (childNodes.Any(i => diagram.NodeExists(i.Id)))
            {
                DiagramService.AddNode(addedModelNode.Id);
            }
        }
        protected async Task <Maybe <IModelNode> > TryAddCurrentSymbolToDiagramAsync()
        {
            var maybeSymbol = await RoslynWorkspaceProvider.TryGetCurrentSymbolAsync();

            if (!maybeSymbol.HasValue)
            {
                return(Maybe <IModelNode> .Nothing);
            }

            var modelNode = RoslynBasedModelService.GetOrAddNode(maybeSymbol.Value);

            DiagramService.AddNode(modelNode.Id);
            return(Maybe.Create(modelNode));
        }
        private void ShowParentNode([NotNull] IDiagramNode diagramNode)
        {
            var modelNode = diagramNode.ModelNode;

            if (!modelNode.Stereotype.In(TypeMemberModelNodeStereotypes))
            {
                return;
            }

            var parentModelNode = _modelService.LatestModel.GetRelatedNodes(modelNode.Id, CommonDirectedModelRelationshipTypes.Container).SingleOrDefault();

            if (parentModelNode != null)
            {
                DiagramService.AddNode(parentModelNode.Id);
            }
        }