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)