a1c145e861
cv-matcher-data: - Add AiPromptEntity (Key, Language, Value, Description, UpdatedAt) - Add AiPrompts DbSet to CvMatcherDbContext with composite PK - Migration AddAiPrompts: create cvMatcher.AiPrompts table and seed ai.cv-match.system-prompt (language "*") with the current prompt value cv-matcher-api: - Add IAiPromptsRepository / EfAiPromptsRepository under Data/Repositories/ - CvMatcherService: inject IAiPromptsRepository; replace _templates.Render(...) with async DB lookup + simple string replacement - Program.cs: register IAiPromptsRepository (scoped); remove MyAiDbContext, ITemplateService/DbTemplateService registrations and MyAiDbContext migration call - Remove myai-data ProjectReference Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
25 lines
649 B
C#
25 lines
649 B
C#
using CvMatcher.Data;
|
|
using CvMatcher.Data.Repositories.Contracts;
|
|
using Microsoft.EntityFrameworkCore;
|
|
|
|
namespace CvMatcher.Data.Repositories;
|
|
|
|
public sealed class EfAiPromptsRepository : IAiPromptsRepository
|
|
{
|
|
private readonly CvMatcherDbContext _db;
|
|
|
|
public EfAiPromptsRepository(CvMatcherDbContext db)
|
|
{
|
|
_db = db;
|
|
}
|
|
|
|
public async Task<string?> GetAsync(string key, string language, CancellationToken ct)
|
|
{
|
|
return await _db.AiPrompts
|
|
.AsNoTracking()
|
|
.Where(x => x.Key == key && x.Language == language)
|
|
.Select(x => x.Value)
|
|
.FirstOrDefaultAsync(ct);
|
|
}
|
|
}
|