refactor: improve UpdateAsync in EmailTemplateRepository for better entity handling

- Add null check and fetch entity before updating fields.
- Replace the direct property assignment with detailed updates.
- Ensure changes are saved using SaveChangesAsync.
This commit is contained in:
Anatolii Grynchuk
2026-05-13 03:39:44 +03:00
parent c18f0b7fb1
commit 0861e18cec
@@ -46,11 +46,27 @@ internal sealed class EmailTemplateRepository
return EfRepository.AddAsync(MapToEntity(EmailTemplate)); 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); EmailTemplateEntity? entity = await EfRepository.Get()
entity.Updated = DateTimeOffset.UtcNow; .FirstOrDefaultAsync(x => x.Id == EmailTemplate.Id, ct);
return EfRepository.UpdateAsync(entity);
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) public async Task DeleteAsync(EmailTemplate EmailTemplate, CancellationToken ct = default)