Compare commits

...

12 Commits

Author SHA1 Message Date
f5e02c4219 bump to 3.2.0 2025-09-04 16:28:07 +02:00
b88106a38f feat(EmailOut): add Attachment1Bytes, Att1RelatedId and Att1RelType properties. 2025-09-04 16:26:23 +02:00
Developer 02
f70794b7b0 chore: Upgrade von DigitalData.EmailProfilerDispatcher und DigitalData.EmailProfilerDispatcher.Abstraction auf 3.1.1 2025-05-27 18:52:47 +02:00
Developer 02
1157ea032b refaktorisieren: Ersetzen Sie Application.Abstraction durch Abstraction.Application 2025-05-27 18:42:36 +02:00
Developer 02
fd698e7a5d chore(Abstraktion.Attribute): konfiguriert für die Verpackung 2025-05-20 16:50:21 +02:00
Developer 02
a54ec39df7 chore(Abstraktion.Attribute): Unterstützung für .net framework 4.6.2 hinzufügen 2025-05-20 16:39:19 +02:00
Developer 02
8fc23b0055 feat(Abstraction.Attributes): als separates Projekt erstellt, um .net framework als Ziel hinzuzufügen 2025-05-20 16:35:30 +02:00
Developer 02
e372a5a5b2 chore: Pakete aktualisieren und Konflikte lösen 2025-05-20 16:32:13 +02:00
Developer 02
bb9a64a85b Remove old icon and update project references
- Deleted the binary file `icon.png`.
- Updated `PackageIcon` paths in project files to remove dependency on `Assets\icon.png`.
- Added a new `None` item in `DigitalData.EmailProfilerDispatcher.Abstraction.csproj` to include `..\Assets\icon.png`.
- Created a new project section for "Solution Items" in `DigitalData.EmailProfilerDispatcher.sln` to include `icon.png`.
- Removed the previous `ItemGroup` for `None` that updated `Assets\icon.png`.
- The binary file `icon.png` was replaced with a new version.
2025-05-16 10:01:30 +02:00
Developer 02
ab40ce9205 chore: Version auf 3.0.0 für EmailProfilerDispatcher
Aktualisiert die Versionsnummer von 2.0.0 auf 3.0.0 sowohl in
`DigitalData.EmailProfilerDispatcher.Abstraction.csproj`
als auch in `DigitalData.EmailProfilerDispatcher.csproj`.
Setzen Sie `FileVersion` und `AssemblyVersion` auf 3.0.0,
, um eine wesentliche Aktualisierung des Pakets anzuzeigen.
2025-04-14 16:52:07 +02:00
Developer 02
863bf43873 chore: Zielframeworks für Kompatibilität aktualisieren
Aktualisierte das Zielframework von `net7.0` auf mehrere Frameworks (`net7.0;net8.0;net9.0`). Diese Änderung verbessert die Kompatibilität und macht die Projekte zukunftssicher für die .NET-Versionen 7.0, 8.0 und 9.0.
2025-04-14 16:49:05 +02:00
Developer 02
b953e3afaa 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.
2025-04-14 16:38:52 +02:00
14 changed files with 205 additions and 99 deletions

View File

Before

Width:  |  Height:  |  Size: 35 KiB

After

Width:  |  Height:  |  Size: 35 KiB

View File

@@ -0,0 +1,57 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>net462;net7.0;net8.0;net9.0</TargetFrameworks>
<PackageId>DigitalData.EmailProfilerDispatcher.Abstraction.Attributes</PackageId>
<Company>Digital Data GmbH</Company>
<Copyright>Copyright 2025</Copyright>
<PackageIcon>icon.png</PackageIcon>
<PackageTags>digital data email dispatcher</PackageTags>
<Description>This package provides the necessary Attributes for the DigitalData.EmailProfilerDispatcher.Abstractions library to support the .NET Framrwork.</Description>
<Authors>Digital Data GmbH</Authors>
<RepositoryUrl>http://git.dd:3000/AppStd/EmailProfilerDispatcher.git</RepositoryUrl>
<Version>1.0.0</Version>
<AssemblyVersion>1.0.0</AssemblyVersion>
<FileVersion>1.0.0</FileVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(TargetFramework)' == 'net462'">
<ImplicitUsings>disable</ImplicitUsings>
<LangVersion>7.3</LangVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(TargetFramework)' != 'net462'">
<ImplicitUsings>enable</ImplicitUsings>
<LangVersion>latest</LangVersion>
</PropertyGroup>
<ItemGroup Condition="'$(TargetFramework)' == 'net462'">
<PackageReference Include="System.ComponentModel.Annotations" Version="4.7.0" />
</ItemGroup>
<ItemGroup>
<None Include="..\Assets\icon.png">
<Pack>True</Pack>
<PackagePath>\</PackagePath>
</None>
</ItemGroup>
<ItemGroup Condition="'$(TargetFramework)' == 'net7.0'">
<PackageReference Include="DigitalData.Core.Abstractions.Security">
<Version>1.0.0</Version>
</PackageReference>
</ItemGroup>
<ItemGroup Condition="'$(TargetFramework)' == 'net8.0'">
<PackageReference Include="DigitalData.Core.Abstractions.Security">
<Version>1.0.0</Version>
</PackageReference>
</ItemGroup>
<ItemGroup Condition="'$(TargetFramework)' == 'net9.0'">
<PackageReference Include="DigitalData.Core.Abstractions.Security">
<Version>1.0.0</Version>
</PackageReference>
</ItemGroup>
</Project>

View File

@@ -1,4 +1,8 @@
namespace DigitalData.EmailProfilerDispatcher.Abstraction.Attributes #if NETFRAMEWORK
using System;
#endif
namespace DigitalData.EmailProfilerDispatcher.Abstraction.Attributes
{ {
[AttributeUsage(AttributeTargets.Property)] [AttributeUsage(AttributeTargets.Property)]
public class TemplatePlaceholderAttribute : Attribute public class TemplatePlaceholderAttribute : Attribute

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

View File

@@ -1,9 +1,9 @@
using DigitalData.Core.Abstractions.Infrastructure; using DigitalData.Core.Abstraction.Application.Repository;
using DigitalData.EmailProfilerDispatcher.Abstraction.Entities; using DigitalData.EmailProfilerDispatcher.Abstraction.Entities;
namespace DigitalData.EmailProfilerDispatcher.Abstraction.Contracts namespace DigitalData.EmailProfilerDispatcher.Abstraction.Contracts;
[Obsolete("Use IRepository")]
public interface IEmailOutRepository : ICRUDRepository<EmailOut, int>
{ {
public interface IEmailOutRepository : ICRUDRepository<EmailOut, int>
{
}
} }

View File

@@ -1,12 +1,12 @@
using DigitalData.Core.Abstractions.Application; using DigitalData.Core.Abstraction.Application;
using DigitalData.Core.DTO; using DigitalData.Core.Abstraction.Application.DTO;
using DigitalData.EmailProfilerDispatcher.Abstraction.DTOs.EmailOut; using DigitalData.EmailProfilerDispatcher.Abstraction.DTOs.EmailOut;
using DigitalData.EmailProfilerDispatcher.Abstraction.Entities; using DigitalData.EmailProfilerDispatcher.Abstraction.Entities;
namespace DigitalData.EmailProfilerDispatcher.Abstraction.Contracts namespace DigitalData.EmailProfilerDispatcher.Abstraction.Contracts;
[Obsolete("Use MediatR")]
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,27 +1,24 @@
using DigitalData.Core.Abstractions; namespace DigitalData.EmailProfilerDispatcher.Abstraction.DTOs.EmailOut;
namespace DigitalData.EmailProfilerDispatcher.Abstraction.DTOs.EmailOut public record EmailOutDto(
{ int Id,
public record EmailOutDto( int ReminderTypeId,
int Id, int SendingProfile,
int ReminderTypeId, int ReferenceId,
int SendingProfile, string? ReferenceString,
int ReferenceId, int? EntityId,
string? ReferenceString, int WfId,
int? EntityId, string? WfReference,
int WfId, string EmailAddress,
string? WfReference, string EmailSubj,
string EmailAddress, string EmailBody,
string EmailSubj, string? EmailAttmt1,
string EmailBody, DateTime? EmailSent,
string? EmailAttmt1, string? Comment,
DateTime? EmailSent, string AddedWho,
string? Comment, DateTime? AddedWhen,
string AddedWho, string? ChangedWho,
DateTime? AddedWhen, DateTime? ChangedWhen,
string? ChangedWho, DateTime? ErrorTimestamp,
DateTime? ChangedWhen, string? ErrorMsg
DateTime? ErrorTimestamp, );
string? ErrorMsg
) : IUnique<int>;
}

View File

@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<TargetFramework>net7.0</TargetFramework> <TargetFrameworks>net7.0;net8.0;net9.0</TargetFrameworks>
<ImplicitUsings>enable</ImplicitUsings> <ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable> <Nullable>enable</Nullable>
<PackageId>DigitalData.EmailProfilerDispatcher.Abstraction</PackageId> <PackageId>DigitalData.EmailProfilerDispatcher.Abstraction</PackageId>
@@ -9,21 +9,28 @@
<Company>Digital Data GmbH</Company> <Company>Digital Data GmbH</Company>
<Description>This package provides the necessary abstractions and interfaces for the DigitalData.EmailProfilerDispatcher library, facilitating a clean and decoupled architecture.</Description> <Description>This package provides the necessary abstractions and interfaces for the DigitalData.EmailProfilerDispatcher library, facilitating a clean and decoupled architecture.</Description>
<Copyright>Copyright 2024</Copyright> <Copyright>Copyright 2024</Copyright>
<PackageIcon>Assets\icon.png</PackageIcon> <PackageIcon>icon.png</PackageIcon>
<RepositoryUrl>http://git.dd:3000/AppStd/EmailProfilerDispatcher.git</RepositoryUrl> <RepositoryUrl>http://git.dd:3000/AppStd/EmailProfilerDispatcher.git</RepositoryUrl>
<PackageTags>digital data email dispatcher abstraction</PackageTags> <PackageTags>digital data email dispatcher abstraction</PackageTags>
<Version>2.0.0</Version> <Version>3.2.0</Version>
<FileVersion>3.2.0</FileVersion>
<AssemblyVersion>3.2.0</AssemblyVersion>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="DigitalData.Core.Abstractions" Version="2.0.0" /> <None Include="..\Assets\icon.png">
</ItemGroup>
<ItemGroup>
<None Update="Assets\icon.png">
<Pack>True</Pack> <Pack>True</Pack>
<PackagePath>\</PackagePath> <PackagePath>\</PackagePath>
</None> </None>
</ItemGroup> </ItemGroup>
<ItemGroup>
<PackageReference Include="DigitalData.Core.Abstractions.Security" Version="1.0.0" />
<PackageReference Include="DigitalData.Core.Abstraction.Application" Version="1.0.0" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\DigitalData.EmailProfilerDispatcher.Abstraction.Attributes\DigitalData.EmailProfilerDispatcher.Abstraction.Attributes.csproj" />
</ItemGroup>
</Project> </Project>

View File

@@ -1,12 +1,11 @@
using DigitalData.Core.Abstractions; using System.ComponentModel;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema; using System.ComponentModel.DataAnnotations.Schema;
namespace DigitalData.EmailProfilerDispatcher.Abstraction.Entities namespace DigitalData.EmailProfilerDispatcher.Abstraction.Entities
{ {
[Table("TBEMLP_EMAIL_OUT")] [Table("TBEMLP_EMAIL_OUT")]
public class EmailOut : IUnique<int> public class EmailOut
{ {
[Key] [Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)] [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
@@ -74,7 +73,6 @@ namespace DigitalData.EmailProfilerDispatcher.Abstraction.Entities
[Column("ADDED_WHEN")] [Column("ADDED_WHEN")]
[DefaultValue("getdate()")] [DefaultValue("getdate()")]
[NotMapped]
public DateTime? AddedWhen { get; set; } public DateTime? AddedWhen { get; set; }
[Column("CHANGED_WHO", TypeName = "varchar(50)")] [Column("CHANGED_WHO", TypeName = "varchar(50)")]
@@ -90,5 +88,16 @@ namespace DigitalData.EmailProfilerDispatcher.Abstraction.Entities
[Column("ERROR_MSG", TypeName = "varchar(900)")] [Column("ERROR_MSG", TypeName = "varchar(900)")]
[StringLength(900)] [StringLength(900)]
public string? ErrorMsg { get; set; } public string? ErrorMsg { get; set; }
[Column("ATTACHMENT1_BYTES", TypeName = "varbinary(max)")]
public byte[]? Attachment1Bytes { get; set; }
[Column("ATT1_RELATED_ID")]
public long? Att1RelatedId { get; set; }
[Column("ATT1_REL_TYPE", TypeName = "varchar(20)")]
[StringLength(20)]
public string? Att1RelType { get; set; }
} }
} }

View File

@@ -11,6 +11,15 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DigitalData.EmailProfilerDi
EndProject EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DigitalData.EmailProfilerDispatcher", "DigitalData.EmailProfilerDispatcher\DigitalData.EmailProfilerDispatcher.csproj", "{DF202B1D-6C6F-4354-9B73-20F03486D020}" Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DigitalData.EmailProfilerDispatcher", "DigitalData.EmailProfilerDispatcher\DigitalData.EmailProfilerDispatcher.csproj", "{DF202B1D-6C6F-4354-9B73-20F03486D020}"
EndProject EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{8EC462FD-D22E-90A8-E5CE-7E832BA40C5D}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Assest", "Assest", "{02EA681E-C7D8-13C7-8484-4AC65E1B71E8}"
ProjectSection(SolutionItems) = preProject
Assets\icon.png = Assets\icon.png
EndProjectSection
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DigitalData.EmailProfilerDispatcher.Abstraction.Attributes", "DigitalData.EmailProfilerDispatcher.Abstraction.Attributes\DigitalData.EmailProfilerDispatcher.Abstraction.Attributes.csproj", "{16785881-75BA-4721-9A0C-B469FAA95D95}"
EndProject
Global Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU Debug|Any CPU = Debug|Any CPU
@@ -33,10 +42,17 @@ Global
{DF202B1D-6C6F-4354-9B73-20F03486D020}.Debug|Any CPU.Build.0 = Release|Any CPU {DF202B1D-6C6F-4354-9B73-20F03486D020}.Debug|Any CPU.Build.0 = Release|Any CPU
{DF202B1D-6C6F-4354-9B73-20F03486D020}.Release|Any CPU.ActiveCfg = Release|Any CPU {DF202B1D-6C6F-4354-9B73-20F03486D020}.Release|Any CPU.ActiveCfg = Release|Any CPU
{DF202B1D-6C6F-4354-9B73-20F03486D020}.Release|Any CPU.Build.0 = Release|Any CPU {DF202B1D-6C6F-4354-9B73-20F03486D020}.Release|Any CPU.Build.0 = Release|Any CPU
{16785881-75BA-4721-9A0C-B469FAA95D95}.Debug|Any CPU.ActiveCfg = Release|Any CPU
{16785881-75BA-4721-9A0C-B469FAA95D95}.Debug|Any CPU.Build.0 = Release|Any CPU
{16785881-75BA-4721-9A0C-B469FAA95D95}.Release|Any CPU.ActiveCfg = Release|Any CPU
{16785881-75BA-4721-9A0C-B469FAA95D95}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection EndGlobalSection
GlobalSection(SolutionProperties) = preSolution GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE HideSolutionNode = FALSE
EndGlobalSection EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{02EA681E-C7D8-13C7-8484-4AC65E1B71E8} = {8EC462FD-D22E-90A8-E5CE-7E832BA40C5D}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {CB0B8122-D532-4A7F-87CC-760B959A433C} SolutionGuid = {CB0B8122-D532-4A7F-87CC-760B959A433C}
EndGlobalSection EndGlobalSection

View File

@@ -1,41 +1,56 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<TargetFramework>net7.0</TargetFramework> <TargetFrameworks>net7.0;net8.0;net9.0</TargetFrameworks>
<ImplicitUsings>enable</ImplicitUsings> <ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable> <Nullable>enable</Nullable>
<PackageId>DigitalData.EmailProfilerDispatcher</PackageId> <PackageId>DigitalData.EmailProfilerDispatcher</PackageId>
<Version>2.0.0</Version>
<Company>Digital Data GmbH</Company> <Company>Digital Data GmbH</Company>
<Copyright>Copyright 2024</Copyright> <Copyright>Copyright 2024</Copyright>
<PackageIcon>Assets\icon.png</PackageIcon> <PackageIcon>icon.png</PackageIcon>
<PackageTags>digital data email dispatcher</PackageTags> <PackageTags>digital data email dispatcher</PackageTags>
<Description>DigitalData.EmailProfilerDispatcher enables adding data to the Email Profiler's SQL tables for systematic and batch email dispatching. It also supports dynamic and automatic template filling using attributes, allowing object property values to populate email templates.</Description> <Description>DigitalData.EmailProfilerDispatcher enables adding data to the Email Profiler's SQL tables for systematic and batch email dispatching. It also supports dynamic and automatic template filling using attributes, allowing object property values to populate email templates.</Description>
<Authors>Digital Data GmbH</Authors> <Authors>Digital Data GmbH</Authors>
<RepositoryUrl>http://git.dd:3000/AppStd/EmailProfilerDispatcher.git</RepositoryUrl> <RepositoryUrl>http://git.dd:3000/AppStd/EmailProfilerDispatcher.git</RepositoryUrl>
<Version>3.1.1</Version>
<AssemblyVersion>3.1.1</AssemblyVersion>
<FileVersion>3.1.1</FileVersion>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="AutoMapper" Version="13.0.1" /> <None Include="..\Assets\icon.png">
<PackageReference Include="DigitalData.Core.Abstractions" Version="2.0.0" /> <Pack>True</Pack>
<PackageReference Include="DigitalData.Core.Application" Version="2.0.0" /> <PackagePath>\</PackagePath>
<PackageReference Include="DigitalData.Core.Infrastructure" Version="2.0.0" /> </None>
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="7.0.16" /> </ItemGroup>
<PackageReference Include="Microsoft.EntityFrameworkCore.Relational" Version="7.0.16" />
<ItemGroup>
<PackageReference Include="DigitalData.Core.Application" Version="3.3.4" />
<PackageReference Include="DigitalData.Core.Infrastructure" Version="2.1.1" />
<PackageReference Include="Microsoft.Extensions.Localization" Version="7.0.19" /> <PackageReference Include="Microsoft.Extensions.Localization" Version="7.0.19" />
<PackageReference Include="Microsoft.Extensions.Localization.Abstractions" Version="7.0.19" /> <PackageReference Include="Microsoft.Extensions.Localization.Abstractions" Version="7.0.19" />
</ItemGroup> </ItemGroup>
<ItemGroup Condition="'$(TargetFramework)' == 'net7.0'">
<PackageReference Include="AutoMapper" Version="13.0.1" />
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="7.0.20" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Relational" Version="7.0.20" />
</ItemGroup>
<ItemGroup Condition="'$(TargetFramework)' == 'net8.0'">
<PackageReference Include="AutoMapper" Version="14.0.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="8.0.15" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Relational" Version="8.0.15" />
</ItemGroup>
<ItemGroup Condition="'$(TargetFramework)' == 'net9.0'">
<PackageReference Include="AutoMapper" Version="14.0.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="9.0.5" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Relational" Version="9.0.5" />
</ItemGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\DigitalData.EmailProfilerDispatcher.Abstraction\DigitalData.EmailProfilerDispatcher.Abstraction.csproj" /> <ProjectReference Include="..\DigitalData.EmailProfilerDispatcher.Abstraction\DigitalData.EmailProfilerDispatcher.Abstraction.csproj" />
</ItemGroup> </ItemGroup>
<ItemGroup>
<None Update="Assets\icon.png">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<Pack>True</Pack>
<PackagePath>\</PackagePath>
</None>
</ItemGroup>
</Project> </Project>

View File

@@ -1,15 +1,16 @@
using DigitalData.Core.Infrastructure; using DigitalData.Core.Abstraction.Application.Repository;
using DigitalData.Core.Infrastructure;
using DigitalData.EmailProfilerDispatcher.Abstraction.Contracts; using DigitalData.EmailProfilerDispatcher.Abstraction.Contracts;
using DigitalData.EmailProfilerDispatcher.Abstraction.Entities; using DigitalData.EmailProfilerDispatcher.Abstraction.Entities;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
namespace DigitalData.EmailProfilerDispatcher.Repositories namespace DigitalData.EmailProfilerDispatcher.Repositories;
[Obsolete("Use IRepository")]
public class EmailOutRepository<TDbContext> : CRUDRepository<EmailOut, int, TDbContext>, IEmailOutRepository
where TDbContext : DbContext, IMailDbContext
{ {
public class EmailOutRepository<TDbContext> : CRUDRepository<EmailOut, int, TDbContext>, IEmailOutRepository public EmailOutRepository(TDbContext dbContext) : base(dbContext, dbContext.EMailOuts)
where TDbContext : DbContext, IMailDbContext
{ {
public EmailOutRepository(TDbContext dbContext) : base(dbContext, dbContext.EMailOuts)
{
}
} }
} }

View File

@@ -1,32 +1,31 @@
using AutoMapper; using AutoMapper;
using DigitalData.Core.Application; using DigitalData.Core.Application;
using DigitalData.Core.DTO; using DigitalData.Core.Abstraction.Application.DTO;
using DigitalData.EmailProfilerDispatcher.Abstraction.Contracts; using DigitalData.EmailProfilerDispatcher.Abstraction.Contracts;
using DigitalData.EmailProfilerDispatcher.Abstraction.DTOs.EmailOut; using DigitalData.EmailProfilerDispatcher.Abstraction.DTOs.EmailOut;
using DigitalData.EmailProfilerDispatcher.Abstraction.Entities; using DigitalData.EmailProfilerDispatcher.Abstraction.Entities;
namespace DigitalData.EmailProfilerDispatcher.Abstraction.Services namespace DigitalData.EmailProfilerDispatcher.Abstraction.Services;
{
public class EmailOutService : CRUDService<IEmailOutRepository, EmailOutCreateDto, EmailOutDto, EmailOutDto, EmailOut, int>, IEmailOutService public class EmailOutService : CRUDService<IEmailOutRepository, EmailOutCreateDto, EmailOutDto, EmailOut, int>, IEmailOutService
{ {
public EmailOutService(IEmailOutRepository repository, IMapper mapper) : base(repository, mapper) public EmailOutService(IEmailOutRepository repository, IMapper mapper) : base(repository, mapper)
{ {
} }
public async Task<DataResult<int>> CreateWithTemplateAsync(EmailOutCreateDto createDto, params object[] models) public async Task<DataResult<int>> CreateWithTemplateAsync(EmailOutCreateDto createDto, params object[] models)
{ {
createDto.EmailSubj = createDto.EmailSubj.FillTemplate(models); createDto.EmailSubj = createDto.EmailSubj.FillTemplate(models);
createDto.EmailBody = createDto.EmailBody.FillTemplate(models); createDto.EmailBody = createDto.EmailBody.FillTemplate(models);
return await base.CreateAsync(createDto); return await base.CreateAsync(createDto).ThenAsync(email => Result.Success(email.Id), (msg, ntc) => Result.Fail<int>().Message(msg).Notice(ntc));
} }
public async Task<DataResult<int>> CreateWithTemplateAsync(EmailOutCreateDto createDto, Dictionary<string, string> placeholders, params object[] models) public async Task<DataResult<int>> CreateWithTemplateAsync(EmailOutCreateDto createDto, Dictionary<string, string> placeholders, params object[] models)
{ {
createDto.EmailSubj = createDto.EmailSubj.FillTemplate(placeholders); createDto.EmailSubj = createDto.EmailSubj.FillTemplate(placeholders);
createDto.EmailBody = createDto.EmailBody.FillTemplate(placeholders); createDto.EmailBody = createDto.EmailBody.FillTemplate(placeholders);
return await CreateWithTemplateAsync(createDto, models: models); return await CreateWithTemplateAsync(createDto, models: models);
}
} }
} }

View File

@@ -1,4 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<TargetFramework>net7.0</TargetFramework> <TargetFramework>net7.0</TargetFramework>
@@ -11,7 +11,8 @@
<ItemGroup> <ItemGroup>
<PackageReference Include="coverlet.collector" Version="3.2.0" /> <PackageReference Include="coverlet.collector" Version="3.2.0" />
<PackageReference Include="DigitalData.Core.Application" Version="2.0.0" /> <PackageReference Include="DigitalData.Core.Application" Version="3.3.4" />
<PackageReference Include="DigitalData.Core.Abstraction.Application" Version="1.0.0" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.7.1" /> <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.7.1" />
<PackageReference Include="NUnit" Version="3.13.3" /> <PackageReference Include="NUnit" Version="3.13.3" />
<PackageReference Include="NUnit.Analyzers" Version="3.6.1" /> <PackageReference Include="NUnit.Analyzers" Version="3.6.1" />