public UmlDiagram GetOrCreateDiagram(string diagramName) { if (Diagrams.TryGetValue(diagramName, out var x)) { return(x); } Diagrams[diagramName] = x = new UmlDiagram { Name = diagramName, Title = "Diagram " + diagramName }; x.OnAddTypeToDiagram += XOnOnAddTypeToDiagram; { var handler = OnAddDiagram; if (handler != null) { handler.Invoke(this, new AddDiagramEventArgs { Diagram = x }); } } return(x); }