public async Task <CacheProgramResults> ExecuteAsync(string username, string password, CancellationToken cancellationToken) { var sb = new StringBuilder(); sb.Append($"--userName {username} "); sb.Append($"--userPassword {password} "); sb.Append($"--resultsFilePath {ResultsFilePath.EncloseQuotes()} "); string arguments = sb.ToString(); var processUtils = new ProcessUtils(); try { var processRunResults = await processUtils.RunProcessAsync(ExecutablePath, arguments, cancellationToken).ConfigureAwait(false); return(CacheProgramResults.CreateFromResultsFile(ResultsFilePath, processRunResults)); } catch (ProcessRunException ex) { return(CacheProgramResults.CreateWithFailedExecution(ex)); } }