Search/AdvisoryAI and DAL conversion to EF finishes up. Preparation for microservices consolidation.
This commit is contained in:
@@ -13,11 +13,15 @@ namespace StellaOps.SbomService.Lineage.Repositories;
|
||||
/// </summary>
|
||||
public sealed class SbomVerdictLinkRepository : RepositoryBase<LineageDataSource>, ISbomVerdictLinkRepository
|
||||
{
|
||||
private readonly TimeProvider _timeProvider;
|
||||
|
||||
public SbomVerdictLinkRepository(
|
||||
LineageDataSource dataSource,
|
||||
ILogger<SbomVerdictLinkRepository> logger)
|
||||
ILogger<SbomVerdictLinkRepository> logger,
|
||||
TimeProvider? timeProvider = null)
|
||||
: base(dataSource, logger)
|
||||
{
|
||||
_timeProvider = timeProvider ?? TimeProvider.System;
|
||||
}
|
||||
|
||||
public async ValueTask<SbomVerdictLink> AddAsync(SbomVerdictLink link, CancellationToken ct = default)
|
||||
@@ -30,6 +34,7 @@ public sealed class SbomVerdictLinkRepository : RepositoryBase<LineageDataSource
|
||||
var schemaName = GetSchemaName();
|
||||
var statusStr = MapStatusToString(link.VerdictStatus);
|
||||
|
||||
var now = _timeProvider.GetUtcNow();
|
||||
var sql = $"""
|
||||
INSERT INTO {schemaName}.sbom_verdict_links (
|
||||
sbom_version_id, cve, consensus_projection_id,
|
||||
@@ -41,7 +46,7 @@ public sealed class SbomVerdictLinkRepository : RepositoryBase<LineageDataSource
|
||||
consensus_projection_id = EXCLUDED.consensus_projection_id,
|
||||
verdict_status = EXCLUDED.verdict_status,
|
||||
confidence_score = EXCLUDED.confidence_score,
|
||||
linked_at = NOW()
|
||||
linked_at = {"{6}"}
|
||||
RETURNING sbom_version_id, cve, consensus_projection_id,
|
||||
verdict_status, confidence_score, tenant_id, linked_at
|
||||
""";
|
||||
@@ -49,7 +54,7 @@ public sealed class SbomVerdictLinkRepository : RepositoryBase<LineageDataSource
|
||||
var result = await dbContext.SbomVerdictLinks
|
||||
.FromSqlRaw(sql,
|
||||
link.SbomVersionId, link.Cve, link.ConsensusProjectionId,
|
||||
statusStr, link.ConfidenceScore, link.TenantId)
|
||||
statusStr, link.ConfidenceScore, link.TenantId, now)
|
||||
.AsNoTracking()
|
||||
.FirstOrDefaultAsync(ct)
|
||||
.ConfigureAwait(false);
|
||||
|
||||
@@ -1,21 +0,0 @@
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
|
||||
namespace StellaOps.SbomService.Persistence.EfCore.Context;
|
||||
|
||||
/// <summary>
|
||||
/// EF Core DbContext for SbomService module.
|
||||
/// This is a stub that will be scaffolded from the PostgreSQL database.
|
||||
/// </summary>
|
||||
public class SbomServiceDbContext : DbContext
|
||||
{
|
||||
public SbomServiceDbContext(DbContextOptions<SbomServiceDbContext> options)
|
||||
: base(options)
|
||||
{
|
||||
}
|
||||
|
||||
protected override void OnModelCreating(ModelBuilder modelBuilder)
|
||||
{
|
||||
modelBuilder.HasDefaultSchema("sbom");
|
||||
base.OnModelCreating(modelBuilder);
|
||||
}
|
||||
}
|
||||
@@ -11,10 +11,7 @@
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore" />
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" PrivateAssets="all" />
|
||||
<PackageReference Include="Npgsql" />
|
||||
<PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" />
|
||||
<PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" />
|
||||
<PackageReference Include="Microsoft.Extensions.Configuration.Abstractions" />
|
||||
</ItemGroup>
|
||||
@@ -22,6 +19,5 @@
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\..\StellaOps.SbomService\StellaOps.SbomService.csproj" />
|
||||
<ProjectReference Include="..\..\..\__Libraries\StellaOps.Infrastructure.Postgres\StellaOps.Infrastructure.Postgres.csproj" />
|
||||
<ProjectReference Include="..\..\..\__Libraries\StellaOps.Infrastructure.EfCore\StellaOps.Infrastructure.EfCore.csproj" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
|
||||
Reference in New Issue
Block a user