private void PopulateLastSessions() { popupLastSessions.ClearLinks(); var store = new TemporaryLogStore(); var topLevelPath = store.TopLevelPath; if (!Directory.Exists(topLevelPath)) { return; } foreach (var sessionPath in Directory.GetDirectories(topLevelPath).OrderByDescending(dir => dir)) { var button = new BarButtonItem(); button.Caption = store.GetLogName(sessionPath); button.ItemClick += async(s, e) => await ImportFromDirectoryAsync(sessionPath); popupLastSessions.AddItem(button); } if (popupLastSessions.ItemLinks.Count > 0) { var topLevelButton = new BarButtonItem(); topLevelButton.Caption = "Locate logs"; topLevelButton.ItemClick += (s, e) => Process.Start(topLevelPath); popupLastSessions.AddItem(topLevelButton).BeginGroup = true; } }
private void PopulateLastSessions() { popupLastSessions.ClearLinks(); var store = new TemporaryLogStore(); var topLevelPath = store.TopLevelPath; string[] sessionPaths = null; if (Directory.Exists(topLevelPath)) { sessionPaths = Directory .GetDirectories(topLevelPath) .OrderByDescending(dir => dir) .Take(20) // limit to max to keep the menu fast .ToArray(); } if ((sessionPaths?.Length ?? 0) == 0) { var button = new BarButtonItem(); button.Caption = "(no sessions yet)"; button.Enabled = false; popupLastSessions.AddItem(button); return; } foreach (var sessionPath in sessionPaths) { var button = new BarButtonItem(); button.Caption = store.GetLogName(sessionPath); button.ItemClick += async(s, e) => await ImportFromDirectoryAsync(sessionPath); popupLastSessions.AddItem(button); } if (popupLastSessions.ItemLinks.Count > 0) { var topLevelButton = new BarButtonItem(); topLevelButton.Caption = "Show in Windows Explorer"; topLevelButton.ItemClick += (s, e) => Process.Start(topLevelPath); popupLastSessions.AddItem(topLevelButton).BeginGroup = true; } var importButton = new BarButtonItem(); importButton.Caption = "Import from folder"; importButton.ItemClick += async(s, e) => await ImportWithDirectoryDialogAsync(); popupLastSessions.AddItem(importButton).BeginGroup = true; }