private void DeleteFromDatabase(DiagramItem wholeDiagramToAdjust, SelectableDesignerItemViewModelBase itemToDelete) { //make sure the item is removes from Diagram as well as removing them as individual items from database if (itemToDelete is PersistDesignerItemViewModel) { DiagramItemData diagramItemToRemoveFromParent = wholeDiagramToAdjust.DesignerItems.Where(x => x.ItemId == itemToDelete.Id && x.ItemType == typeof(PersistDesignerItem)).Single(); wholeDiagramToAdjust.DesignerItems.Remove(diagramItemToRemoveFromParent); databaseAccessService.DeletePersistDesignerItem(itemToDelete.Id); } if (itemToDelete is SettingsDesignerItemViewModel) { DiagramItemData diagramItemToRemoveFromParent = wholeDiagramToAdjust.DesignerItems.Where(x => x.ItemId == itemToDelete.Id && x.ItemType == typeof(SettingsDesignerItem)).Single(); wholeDiagramToAdjust.DesignerItems.Remove(diagramItemToRemoveFromParent); databaseAccessService.DeleteSettingDesignerItem(itemToDelete.Id); } if (itemToDelete is ConnectorViewModel) { wholeDiagramToAdjust.ConnectionIds.Remove(itemToDelete.Id); databaseAccessService.DeleteConnection(itemToDelete.Id); } databaseAccessService.SaveDiagram(wholeDiagramToAdjust); }