Refactor email repository and service interfaces

- Die Schnittstelle `IEmailOutRepository` wurde durch Entfernen unnötiger Klammern gestrafft.
- Aktualisierte `IEmailOutService` Schnittstelle, um generische Parameter zu korrigieren und Redundanz zu entfernen.
- Aktualisierte Paketversionen in Projektdateien auf `DigitalData.Core.Abstractions` (3.4.0) und `DigitalData.Core.Application` (3.2.0).
- Verbesserte `CreateWithTemplateAsync` Methoden in `EmailOutService.cs` für bessere Implementierung.
- Das Testprojekt wurde aktualisiert, um die neue Paketversion für `DigitalData.Core.Application` zu berücksichtigen.
This commit is contained in:
Developer 02
2025-04-14 16:38:52 +02:00
parent 211a63d70e
commit b953e3afaa
6 changed files with 26 additions and 29 deletions

View File

@@ -1,9 +1,8 @@
using DigitalData.Core.Abstractions.Infrastructure;
using DigitalData.EmailProfilerDispatcher.Abstraction.Entities;
namespace DigitalData.EmailProfilerDispatcher.Abstraction.Contracts
namespace DigitalData.EmailProfilerDispatcher.Abstraction.Contracts;
public interface IEmailOutRepository : ICRUDRepository<EmailOut, int>
{
public interface IEmailOutRepository : ICRUDRepository<EmailOut, int>
{
}
}

View File

@@ -3,10 +3,9 @@ using DigitalData.Core.DTO;
using DigitalData.EmailProfilerDispatcher.Abstraction.DTOs.EmailOut;
using DigitalData.EmailProfilerDispatcher.Abstraction.Entities;
namespace DigitalData.EmailProfilerDispatcher.Abstraction.Contracts
namespace DigitalData.EmailProfilerDispatcher.Abstraction.Contracts;
public interface IEmailOutService : ICRUDService<EmailOutCreateDto, EmailOutDto, EmailOut, int>
{
public interface IEmailOutService : ICRUDService<EmailOutCreateDto, EmailOutDto, EmailOutDto, EmailOut, int>
{
Task<DataResult<int>> CreateWithTemplateAsync(EmailOutCreateDto createDto, params object[] models);
}
Task<DataResult<int>> CreateWithTemplateAsync(EmailOutCreateDto createDto, params object[] models);
}

View File

@@ -1,4 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk">
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net7.0</TargetFramework>
@@ -16,7 +16,7 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="DigitalData.Core.Abstractions" Version="2.0.0" />
<PackageReference Include="DigitalData.Core.Abstractions" Version="3.4.0" />
</ItemGroup>
<ItemGroup>

View File

@@ -17,8 +17,8 @@
<ItemGroup>
<PackageReference Include="AutoMapper" Version="13.0.1" />
<PackageReference Include="DigitalData.Core.Abstractions" Version="2.0.0" />
<PackageReference Include="DigitalData.Core.Application" Version="2.0.0" />
<PackageReference Include="DigitalData.Core.Abstractions" Version="3.4.0" />
<PackageReference Include="DigitalData.Core.Application" Version="3.2.0" />
<PackageReference Include="DigitalData.Core.Infrastructure" Version="2.0.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="7.0.16" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Relational" Version="7.0.16" />

View File

@@ -5,28 +5,27 @@ using DigitalData.EmailProfilerDispatcher.Abstraction.Contracts;
using DigitalData.EmailProfilerDispatcher.Abstraction.DTOs.EmailOut;
using DigitalData.EmailProfilerDispatcher.Abstraction.Entities;
namespace DigitalData.EmailProfilerDispatcher.Abstraction.Services
{
public class EmailOutService : CRUDService<IEmailOutRepository, EmailOutCreateDto, EmailOutDto, EmailOutDto, EmailOut, int>, IEmailOutService
namespace DigitalData.EmailProfilerDispatcher.Abstraction.Services;
public class EmailOutService : CRUDService<IEmailOutRepository, EmailOutCreateDto, EmailOutDto, EmailOut, int>, IEmailOutService
{
public EmailOutService(IEmailOutRepository repository, IMapper mapper) : base(repository, mapper)
{
}
public async Task<DataResult<int>> CreateWithTemplateAsync(EmailOutCreateDto createDto, params object[] models)
{
createDto.EmailSubj = createDto.EmailSubj.FillTemplate(models);
createDto.EmailBody = createDto.EmailBody.FillTemplate(models);
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);
}
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);
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);
}
return await CreateWithTemplateAsync(createDto, models: models);
}
}

View File

@@ -11,7 +11,7 @@
<ItemGroup>
<PackageReference Include="coverlet.collector" Version="3.2.0" />
<PackageReference Include="DigitalData.Core.Application" Version="2.0.0" />
<PackageReference Include="DigitalData.Core.Application" Version="3.2.0" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.7.1" />
<PackageReference Include="NUnit" Version="3.13.3" />
<PackageReference Include="NUnit.Analyzers" Version="3.6.1" />