namespace CommandLineWrapper; public class JVCSWorkspace { public string WorkspaceDirectory => _workspaceDirectory ?? Directory.GetCurrentDirectory(); public bool SuccessInitialized => _successInitialized; private string? _workspaceDirectory; private bool _successInitialized; public async Task InitializeAsync(string directory) { // If the specified directory does not exist, create it if (!Directory.Exists(directory)) Directory.CreateDirectory(directory); // Invoke command to get workspace directory var result = await JVCSCommandInvoker.Invoke(Constants.CommandParameterGenerator.GetWorkspaceDirectory(), directory); var currentWorkspace = result.StandardOutput; // Check if the obtained workspace directory is valid (not empty and exists) if (!string.IsNullOrWhiteSpace(currentWorkspace) && Directory.Exists(currentWorkspace)) { _workspaceDirectory = currentWorkspace; _successInitialized = true; } else { // If the workspace is invalid, initialize a new workspace result = await JVCSCommandInvoker.Invoke(Constants.CommandParameterGenerator.Initialize(), directory); if (result.ExitCode == 0) _successInitialized = true; } } }