private void AddConnector(IDiagramConnector diagramConnector)
        {
            var diagramConnectorViewModel = (DiagramConnectorViewModel)_diagramShapeUiFactory.CreateDiagramConnectorUi(DiagramService, diagramConnector);

            DiagramConnectorViewModels.Add(diagramConnectorViewModel);

            _diagramConnectorToViewModelMap.Set(diagramConnector, diagramConnectorViewModel);
        }
        private void RemoveConnector(IDiagramConnector diagramConnector)
        {
            if (!TryGetDiagramConnectorViewModel(diagramConnector.Id, out var diagramConnectorViewModel))
            {
                return;
            }

            MiniButtonPanelViewModel.Unfocus(diagramConnectorViewModel);
            _diagramConnectorToViewModelMap.Remove(diagramConnector.Id);
            DiagramConnectorViewModels.Remove(diagramConnectorViewModel);

            diagramConnectorViewModel.Dispose();
        }
        private void ClearViewport()
        {
            foreach (var diagramConnectorViewModel in DiagramConnectorViewModels.ToArray())
            {
                RemoveFromViewModels(diagramConnectorViewModel);
            }

            foreach (var diagramNodeViewModel in DiagramNodeViewModels.ToArray())
            {
                RemoveFromViewModels(diagramNodeViewModel);
            }

            _diagramShapeToViewModelMap.Clear();
        }
        private void ClearViewport()
        {
            foreach (var diagramConnectorViewModel in DiagramConnectorViewModels.ToArray())
            {
                RemoveConnector(diagramConnectorViewModel.DiagramConnector);
            }

            foreach (var diagramNodeViewModel in DiagramNodeViewModels.ToArray())
            {
                RemoveNode(diagramNodeViewModel.DiagramNode);
            }

            _diagramConnectorToViewModelMap.Clear();
            _diagramNodeToViewModelMap.Clear();
        }
        private void AddToViewModels(DiagramShapeViewModelBase diagramShapeViewModel)
        {
            if (diagramShapeViewModel is DiagramNodeViewModel)
            {
                DiagramNodeViewModels.Add((DiagramNodeViewModel)diagramShapeViewModel);
            }

            else if (diagramShapeViewModel is DiagramConnectorViewModel)
            {
                DiagramConnectorViewModels.Add((DiagramConnectorViewModel)diagramShapeViewModel);
            }

            else
            {
                throw new Exception($"Unexpected DiagramShapeViewModelBase: {diagramShapeViewModel.GetType().Name}");
            }
        }
 private void RemoveFromViewModels(DiagramShapeViewModelBase diagramShapeViewModel)
 {
     if (diagramShapeViewModel is DiagramNodeViewModel)
     {
         var diagramNodeViewModel = (DiagramNodeViewModel)diagramShapeViewModel;
         DiagramNodeViewModels.Remove(diagramNodeViewModel);
         diagramNodeViewModel.Dispose();
     }
     else if (diagramShapeViewModel is DiagramConnectorViewModel)
     {
         var diagramConnectorViewModel = (DiagramConnectorViewModel)diagramShapeViewModel;
         DiagramConnectorViewModels.Remove(diagramConnectorViewModel);
         diagramConnectorViewModel.Dispose();
     }
     else
     {
         throw new Exception($"Unexpected DiagramShapeViewModelBase: {diagramShapeViewModel.GetType().Name}");
     }
 }