private void DeleteTrackGroup(Repository repo, TrackGroup group, bool confirm) { if (confirm && DisplayMessage != null) { if (!DisplayMessage.Confirm("트랙 그룹 삭제", "포함된 트랙들과 관련된 정보 및 영상 파일이 모두 삭제됩니다.\r\n삭제하시겠습니까?")) return; } for (int i = group.Children.Count - 1; i >= 0; i--) { if (group.Children[i] is TrackGroup) { DeleteTrackGroup(repo, (TrackGroup)group.Children[i], false); } else { DeleteTrack(repo, (Track)group.Children[i], false); } } group.Delete(); }
private void DeleteTrack(Repository repo, Track track, bool confirm) { if (confirm && DisplayMessage != null) { if (!DisplayMessage.Confirm("트랙 삭제", "트랙과 관련된 정보 및 영상 파일이 모두 삭제됩니다.\r\n삭제하시겠습니까?")) return; } // 재생 중이던 트랙이면 중지시킨다. if (track == ActiveTrack) { ActiveTrack = null; } // 선택 상태이면 선택을 해제한다. track.IsChecked = false; // 그룹에서 제거한다. track.Group.Remove(track); // 트랙 객체와 관련 파일들을 모두 삭제한다. repo.Delete(track); }