Compare commits

..

4 Commits

11 changed files with 85 additions and 57 deletions

View File

@@ -36,4 +36,22 @@
</None> </None>
</ItemGroup> </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> </Project>

View File

@@ -1,8 +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,10 +1,11 @@
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, EmailOut, int>
{ {
Task<DataResult<int>> CreateWithTemplateAsync(EmailOutCreateDto createDto, params object[] models); Task<DataResult<int>> CreateWithTemplateAsync(EmailOutCreateDto createDto, params object[] models);

View File

@@ -1,8 +1,6 @@
using DigitalData.Core.Abstractions; namespace DigitalData.EmailProfilerDispatcher.Abstraction.DTOs.EmailOut;
namespace DigitalData.EmailProfilerDispatcher.Abstraction.DTOs.EmailOut public record EmailOutDto(
{
public record EmailOutDto(
int Id, int Id,
int ReminderTypeId, int ReminderTypeId,
int SendingProfile, int SendingProfile,
@@ -23,5 +21,4 @@ namespace DigitalData.EmailProfilerDispatcher.Abstraction.DTOs.EmailOut
DateTime? ChangedWhen, DateTime? ChangedWhen,
DateTime? ErrorTimestamp, DateTime? ErrorTimestamp,
string? ErrorMsg string? ErrorMsg
) : IUnique<int>; );
}

View File

@@ -12,9 +12,9 @@
<PackageIcon>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>3.0.0</Version> <Version>3.2.0</Version>
<FileVersion>3.0.0</FileVersion> <FileVersion>3.2.0</FileVersion>
<AssemblyVersion>3.0.0</AssemblyVersion> <AssemblyVersion>3.2.0</AssemblyVersion>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
@@ -25,7 +25,8 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="DigitalData.Core.Application" Version="3.2.0" /> <PackageReference Include="DigitalData.Core.Abstractions.Security" Version="1.0.0" />
<PackageReference Include="DigitalData.Core.Abstraction.Application" Version="1.0.0" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

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

@@ -42,8 +42,8 @@ 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 = Debug|Any CPU {16785881-75BA-4721-9A0C-B469FAA95D95}.Debug|Any CPU.ActiveCfg = Release|Any CPU
{16785881-75BA-4721-9A0C-B469FAA95D95}.Debug|Any CPU.Build.0 = Debug|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.ActiveCfg = Release|Any CPU
{16785881-75BA-4721-9A0C-B469FAA95D95}.Release|Any CPU.Build.0 = Release|Any CPU {16785881-75BA-4721-9A0C-B469FAA95D95}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection EndGlobalSection

View File

@@ -5,7 +5,6 @@
<ImplicitUsings>enable</ImplicitUsings> <ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable> <Nullable>enable</Nullable>
<PackageId>DigitalData.EmailProfilerDispatcher</PackageId> <PackageId>DigitalData.EmailProfilerDispatcher</PackageId>
<Version>3.0.0</Version>
<Company>Digital Data GmbH</Company> <Company>Digital Data GmbH</Company>
<Copyright>Copyright 2024</Copyright> <Copyright>Copyright 2024</Copyright>
<PackageIcon>icon.png</PackageIcon> <PackageIcon>icon.png</PackageIcon>
@@ -13,8 +12,9 @@
<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>
<AssemblyVersion>3.0.0</AssemblyVersion> <Version>3.1.1</Version>
<FileVersion>3.0.0</FileVersion> <AssemblyVersion>3.1.1</AssemblyVersion>
<FileVersion>3.1.1</FileVersion>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
@@ -25,9 +25,8 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="DigitalData.Core.Abstractions" Version="3.4.0" /> <PackageReference Include="DigitalData.Core.Application" Version="3.3.4" />
<PackageReference Include="DigitalData.Core.Application" Version="3.2.0" /> <PackageReference Include="DigitalData.Core.Infrastructure" Version="2.1.1" />
<PackageReference Include="DigitalData.Core.Infrastructure" Version="2.0.0" />
<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>

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;
{
public class EmailOutRepository<TDbContext> : CRUDRepository<EmailOut, int, TDbContext>, IEmailOutRepository [Obsolete("Use IRepository")]
public class EmailOutRepository<TDbContext> : CRUDRepository<EmailOut, int, TDbContext>, IEmailOutRepository
where TDbContext : DbContext, IMailDbContext where TDbContext : DbContext, IMailDbContext
{ {
public EmailOutRepository(TDbContext dbContext) : base(dbContext, dbContext.EMailOuts) public EmailOutRepository(TDbContext dbContext) : base(dbContext, dbContext.EMailOuts)
{ {
} }
}
} }

View File

@@ -1,6 +1,6 @@
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;
@@ -18,7 +18,7 @@ namespace DigitalData.EmailProfilerDispatcher.Abstraction.Services;
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)

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="3.3.1" /> <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" />