Skip to main content

Code source

Le code source de Sylexe est disponible sur GitHub.

Code de la Base de données

Le code de la base de données est disponible dans le dossier SylexeRadzen/SQLManagement/Services du Github.

GetReportsAsync

public async Task<List<SylexeReports>> GetReportsAsync()
{
    return await dbContext.sylexeReports.ToListAsync();
}

AddReportsAsync

public async Task<SylexeReports> AddReportsAsync(SylexeReports report)
{
    try
    {
        dbContext.sylexeReports.Add(report);
        await dbContext.SaveChangesAsync();
    }
    catch (Exception)
    {
        throw;
    }
        
    return report;
}

UpdateReportsAsync

public async Task<SylexeReports> UpdateReportsAsync(SylexeReports report)
{
    try
    {
        var ReportsExist = dbContext.sylexeReports.FirstOrDefault(l => l.Id == report.Id);
        if (ReportsExist != null)
        {
            dbContext.Update(report);
            await dbContext.SaveChangesAsync();
        }
    }
    catch (Exception)
    {
        throw;
    }
        
    return report;
}

DeleteReportsAsync

public async Task DeleteCategoriesAsync(SylexeReports categories)
{
    try
    {
        dbContext.sylexeReports.Remove(categories);
        await dbContext.SaveChangesAsync();
    }
    catch (Exception)
    {
        throw;
    }
}

Code de l’analyseur avec Trivy

Le code de l’analyseur avec Trivy est disponible dans le dossier SylexeRadzen/Pages/Analyze.razor du Github.

ExecTrivyScan


void ExecTrivyScan(string DockerScan)
{
    Process serverSideProcess = new Process();
    serverSideProcess.StartInfo.FileName = Environment.GetEnvironmentVariable("docker");
    serverSideProcess.StartInfo.FileName = @"C:\Program Files\Docker\Docker\resources\bin\docker.exe";
    var path = Path.Combine(WebEnvironment.ContentRootPath, WebEnvironment.EnvironmentName);
    DateTime currentDateTime = DateTime.Now;
    string formattedDateTime = currentDateTime.ToString("dd-MMMM-yyyy-HH:mm:ss");
        
    string input = (DockerScan + "-" + formattedDateTime);
    string temp = Regex.Replace(input, @"\/", "-");
    string pathOfJson = Regex.Replace(temp, @":", "_");
        
    serverSideProcess.StartInfo.Arguments = String.Format("run -v {0}:/result aquasec/trivy:0.34.0 -d image -f json -o /result/{1}.json {2}", path, pathOfJson, DockerScan);
    serverSideProcess.EnableRaisingEvents = true;
    serverSideProcess.StartInfo.UseShellExecute = true;
    serverSideProcess.Start();
        
    _sylexeService.AddReportsAsync(new SylexeReports
    {
        Name = DockerScan,
        Timestamp = formattedDateTime,
        Path = pathOfJson+".json"
    });
}