public async Task <CacheProgramResults> ExecuteAsync(IEnumerable <LabUserData> labUserData, CancellationToken cancellationToken) { var testInputData = new TestInputData { ResultsFilePath = ResultsFilePath, StorageType = CacheStorageType, LabUserDatas = labUserData.ToList() }; var inputDataJson = JsonConvert.SerializeObject(testInputData); string inputFilePath = Path.Combine(Path.GetTempPath(), Path.GetTempFileName()); File.WriteAllText(inputFilePath, inputDataJson); var sb = new StringBuilder(); sb.Append($"--inputPath {inputFilePath.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)); } }
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)); } }