19e73aca17
New data project owning the emailApi schema: - EmailTemplateEntity with Key, Language, Value, Description, UpdatedAt, OperatorCopy - EmailApiDbContext (schema: emailApi, custom migration table _EmailApiMigrations) - IEmailTemplateRepository / EfEmailTemplateRepository (scoped) - IEmailTemplateService / EmailTemplateService (singleton, 10-min cache) - GetOperatorCopy falls back to first non-empty OperatorCopy across all rows - Initial migration CreateEmailTemplates: creates table + seeds all email.* templates (match + search-results in en/ro) and html-shell fragments with OperatorCopy = "contact@myai.ro" for addressable rows Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
19 lines
523 B
C#
19 lines
523 B
C#
using EmailApi.Data.Entities;
|
|
using EmailApi.Data.Repositories.Contracts;
|
|
using Microsoft.EntityFrameworkCore;
|
|
|
|
namespace EmailApi.Data.Repositories;
|
|
|
|
public sealed class EfEmailTemplateRepository : IEmailTemplateRepository
|
|
{
|
|
private readonly EmailApiDbContext _db;
|
|
|
|
public EfEmailTemplateRepository(EmailApiDbContext db)
|
|
{
|
|
_db = db;
|
|
}
|
|
|
|
public async Task<IReadOnlyList<EmailTemplateEntity>> GetAllAsync(CancellationToken ct)
|
|
=> await _db.EmailTemplates.AsNoTracking().ToListAsync(ct);
|
|
}
|