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);
    }
Ejemplo n.º 3
0
    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);
    }