36 lines
1.5 KiB
C#
36 lines
1.5 KiB
C#
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<TResource> : CRUDService<IEmailOutRepository, EmailOutCreateDto, EmailOutDto, EmailOutDto, EmailOut, int>, IEmailOutService
|
|
{
|
|
public EmailOutService(IEmailOutRepository repository, IStringLocalizer<TResource> localizer, IMapper mapper) : base(repository, localizer, mapper)
|
|
{
|
|
}
|
|
|
|
public async Task<DataResult<int>> 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<DataResult<int>> CreateWithTemplateAsync(EmailOutCreateDto createDto, Dictionary<string, string> placeholders, params object[] models)
|
|
{
|
|
createDto.EmailSubj = createDto.EmailSubj.FillTemplate(placeholders);
|
|
createDto.EmailBody = createDto.EmailBody.FillTemplate(placeholders);
|
|
|
|
return await CreateWithTemplateAsync(createDto, models: models);
|
|
}
|
|
}
|
|
} |