using AutoMapper; using DigitalData.Core.Application; using DigitalData.Core.DTO; using DigitalData.EmailProfilerDispatcher.Application.Contracts; using DigitalData.EmailProfilerDispatcher.Application.DTOs.EmailOut; using DigitalData.EmailProfilerDispatcher.Domain.Attributes; using DigitalData.EmailProfilerDispatcher.Domain.Entities; using DigitalData.EmailProfilerDispatcher.Infrastructure.Contracts; using Microsoft.Extensions.Localization; using System.Reflection; namespace DigitalData.EmailProfilerDispatcher.Application.Services { public class EmailOutService : CRUDService, IEmailOutService { public EmailOutService(IEmailOutRepository repository, IStringLocalizer localizer, IMapper mapper) : base(repository, localizer, mapper) { } public async Task> CreateWithTemplateAsync(EmailOutCreateDto createDto, params object[] models) { createDto.EmailSubj = createDto.EmailSubj.FillTemplate(models); createDto.EmailBody = createDto.EmailBody.FillTemplate(models); return await base.CreateAsync(createDto); } public async Task> CreateWithTemplateAsync(EmailOutCreateDto createDto, Dictionary placeholders, params object[] models) { createDto.EmailSubj = createDto.EmailSubj.FillTemplate(placeholders); createDto.EmailBody = createDto.EmailBody.FillTemplate(placeholders); return await CreateWithTemplateAsync(createDto, models: models); } } }