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));
            }
        }