public void DeleteVersionCommand(IExplorerRepository explorerRepository, ExplorerItemViewModel explorerItemViewModel, IExplorerTreeItem parent, string resourceName) { if (_popupController.ShowDeleteVersionMessage(resourceName) == MessageBoxResult.Yes) { explorerRepository.TryDelete(explorerItemViewModel); var parentChildren = new ObservableCollection <IExplorerItemViewModel>(parent.Children); var index = 0; for (var i = 0; i < parentChildren.Count; i++) { if (parentChildren[i].ResourceName == resourceName) { index = i; break; } } parentChildren.RemoveAt(index); parent.Children = new ObservableCollection <IExplorerItemViewModel>(parentChildren); if (parent.ChildrenCount == 0) { parent.AreVersionsVisible = true; } if (parentChildren.Count == 0) { parent.AreVersionsVisible = false; parent.IsMergeVisible = false; } _shellViewModel.UpdateExplorerWorkflowChanges(explorerItemViewModel.ResourceId); } }
void DeleteCommand(IExplorerTreeItem parent, IExplorerRepository explorerRepository, ExplorerItemViewModel explorerItemViewModel, IPopupController popupController, IServer server) { var messageBoxResult = popupController.Show(popupController.GetDeleteConfirmation(explorerItemViewModel.ResourceName)); if (server != null && messageBoxResult == MessageBoxResult.Yes) { _shellViewModel.CloseResource(explorerItemViewModel.ResourceId, server.EnvironmentID); var deletedFileMetadata = explorerRepository.TryDelete(explorerItemViewModel); if (deletedFileMetadata.IsDeleted) { if (explorerItemViewModel.ResourceType == @"ServerSource" || explorerItemViewModel.IsServer) { server.UpdateRepository.FireServerSaved(explorerItemViewModel.ResourceId, true); } parent?.RemoveChild(explorerItemViewModel); } } }