private void MenuLoop() { ReadNewSaves(); //TODO this may be better handled with something more readable than a key var choiceKey = _menus.MainMenuKeyChoice(); switch (choiceKey) { case ConsoleKey.S: _messages.WaitingToPush(); _messages.PushStatusDisplay(_sharedRepoManager.PushWithStatus(_currentLocalMappingProfile.LocalMappings, _folderPathManager.LocalRepoPath)); break; case ConsoleKey.A: AddGameMenu(); break; case ConsoleKey.T: try { if (_currentLocalMappingProfile == null) { _currentLocalMappingProfile = _mappingManager.ReadLocalMappingProfile(); } } catch (Exception e) { _logger.Error(e, "The application cant find any games that could be tracked"); break; } if (_applicationTrackingManager.SetTrackingOnApplications(_currentLocalMappingProfile.LocalMappings, out var appsTracked)) { List <LocalMapping> changedMappings = _currentLocalMappingProfile.LocalMappings.Where(i => appsTracked.Contains(i.FileName)).ToList(); _sharedRepoManager.PushWithStatus(changedMappings, _folderPathManager.LocalRepoPath); } break; case ConsoleKey.Escape: return; default: break; } ; MenuLoop(); }