refactor: improve UpdateAsync in EmailTemplateRepository for better entity handling #7

Merged
agrynco merged 1 commits from development into main 2026-05-13 03:40:31 +03:00
@@ -46,11 +46,27 @@ internal sealed class EmailTemplateRepository
return EfRepository.AddAsync(MapToEntity(EmailTemplate));
}
public Task UpdateAsync(EmailTemplate EmailTemplate, CancellationToken ct = default)
public async Task UpdateAsync(EmailTemplate EmailTemplate, CancellationToken ct = default)
{
EmailTemplateEntity entity = MapToEntity(EmailTemplate);
entity.Updated = DateTimeOffset.UtcNow;
return EfRepository.UpdateAsync(entity);
EmailTemplateEntity? entity = await EfRepository.Get()
.FirstOrDefaultAsync(x => x.Id == EmailTemplate.Id, ct);
if (entity is null)
{
return;
}
entity.ServiceName = EmailTemplate.ServiceName;
entity.Key = EmailTemplate.Key;
entity.LanguageCode = EmailTemplate.LanguageCode;
entity.Subject = EmailTemplate.Subject;
entity.HtmlBody = EmailTemplate.HtmlBody;
entity.TextBody = EmailTemplate.TextBody;
entity.Variables = EmailTemplate.Variables
.Select(v => new EmailTemplateVariableData { Name = v.Name, Required = v.Required })
.ToList();
await EfRepository.SaveChangesAsync();
}
public async Task DeleteAsync(EmailTemplate EmailTemplate, CancellationToken ct = default)