public async Task <ClockMeasureResponse> Handle(ReadClockMeasurementQuery request, CancellationToken cancellationToken) { var args = new[] { "measure_clock", request.ClockMeasureType.GetSubCommandFor() }; var processStartInfo = ProcessStartInfoFactory.Create(Executables.VcGenCommand, args); // ReSharper disable once ConvertClosureToMethodGroup var frequency = await ProcessRunner.RunAsync(processStartInfo, value => ParseVcGenCommandOutput(value)); this.logger.LogInformation("Measured {Frequency} for {Type}", frequency.Megahertz, request.ClockMeasureType.ToString()); return(new ClockMeasureResponse(request.ClockMeasureType.ToString(), frequency.Megahertz)); }
public async Task <Unit> Handle(DeployCovidStatisticsApiCommand request, CancellationToken cancellationToken) { this.logger.LogInformation("Deploying Service Covid-Statistics API with Version {Version}", request.Tag); this.logger.LogInformation("Script configuration {ScriptConfiguration}", JsonSerializer.Serialize(this.deploymentOptions.Value)); var args = new[] { this.deploymentOptions.Value.ScriptPath, request.Tag }; var processStartInfo = ProcessStartInfoFactory.Create(Executables.Bash, args); await ProcessRunner.RunAsync(processStartInfo, _ => new object()); this.logger.LogInformation("Deployed Service Covid-Statistics API with Version {Version}", request.Tag); return(Unit.Value); }
public async Task <Unit> Handle(DeployCovidStatisticsAppCommand request, CancellationToken cancellationToken) { var fileName = $"{request.Tag}.zip"; var downloadDirectory = CreateDirectoryIfNotExists(); var filePath = Path.Combine(downloadDirectory, fileName); DeleteFileIfExists(filePath); await this.DownloadAndStoreFileAsync(fileName, filePath, cancellationToken); var processInfo = ProcessStartInfoFactory.Create( Executables.Bash, this.covidStatisticsAppDeploymentConfigurationOptions.Value.ScriptPath, fileName, filePath); await ProcessRunner.RunAsync(processInfo, _ => new object()); return(Unit.Value); }