From 0861e18cecb99143e272d8ba5867954a4bd2976a Mon Sep 17 00:00:00 2001 From: Anatolii Grynchuk Date: Wed, 13 May 2026 03:39:44 +0300 Subject: [PATCH] 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. --- .../Repositories/EmailTemplateRepository.cs | 24 +++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/HrynCo.NotificationService.DAL.EF/Repositories/EmailTemplateRepository.cs b/HrynCo.NotificationService.DAL.EF/Repositories/EmailTemplateRepository.cs index 32b1063..ec2d727 100644 --- a/HrynCo.NotificationService.DAL.EF/Repositories/EmailTemplateRepository.cs +++ b/HrynCo.NotificationService.DAL.EF/Repositories/EmailTemplateRepository.cs @@ -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) -- 2.52.0