Die Infrastrukturschicht wurde mit der Anwendungsschicht zusammengeführt, um das Projekt zu vereinfachen, und Abstraktion wurde hinzugefügt.

This commit is contained in:
Developer 02
2024-07-01 14:31:38 +02:00
parent 619b1e414b
commit d18b6df9f7
19 changed files with 41 additions and 93 deletions

View File

@@ -0,0 +1,13 @@
namespace DigitalData.EmailProfilerDispatcher.Abstraction.Attributes
{
[AttributeUsage(AttributeTargets.Property)]
public class TemplatePlaceholderAttribute : Attribute
{
public readonly string Placeholder;
public TemplatePlaceholderAttribute(string placeholder)
{
Placeholder = placeholder;
}
}
}

View File

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

View File

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

View File

@@ -0,0 +1,25 @@
namespace DigitalData.EmailProfilerDispatcher.Abstraction.DTOs.EmailOut
{
public record EmailOutCreateDto
{
public int ReminderTypeId { get; set; }
public int SendingProfile { get; set; }
public int ReferenceId { get; set; }
public int WfId { get; set; }
public string EmailAddress { get; set; }
public string EmailSubj { get; set; }
public string EmailBody { get; set; }
public string? ReferenceString { get; set; } = null;
public int? EntityId { get; set; } = null;
public string? WfReference { get; set; } = null;
public string? EmailAttmt1 { get; set; } = null;
public DateTime? EmailSent { get; set; } = null;
public string? Comment { get; set; } = null;
public string? AddedWho { get; set; } = "DEFAULT";
public string? ChangedWho { get; set; } = null;
public DateTime? ChangedWhen { get; set; } = null;
public DateTime? ErrorTimestamp { get; set; } = null;
public string? ErrorMsg { get; set; } = null;
}
}

View File

@@ -0,0 +1,25 @@
namespace DigitalData.EmailProfilerDispatcher.Abstraction.DTOs.EmailOut
{
public record EmailOutDto(
int Id,
int ReminderTypeId,
int SendingProfile,
int ReferenceId,
string? ReferenceString,
int? EntityId,
int WfId,
string? WfReference,
string EmailAddress,
string EmailSubj,
string EmailBody,
string? EmailAttmt1,
DateTime? EmailSent,
string? Comment,
string AddedWho,
DateTime? AddedWhen,
string? ChangedWho,
DateTime? ChangedWhen,
DateTime? ErrorTimestamp,
string? ErrorMsg
);
}

View File

@@ -0,0 +1,13 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net7.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="DigitalData.Core.Abstractions" Version="1.0.1.1" />
</ItemGroup>
</Project>

View File

@@ -0,0 +1,93 @@
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace DigitalData.EmailProfilerDispatcher.Abstraction.Entities
{
[Table("TBEMLP_EMAIL_OUT")]
public class EmailOut
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
[Column("GUID")]
public int Id { get; set; }
[Required]
[DefaultValue(1)]
[Column("REMINDER_TYPE_ID")]
public int ReminderTypeId { get; set; }
[Required]
[Column("SENDING_PROFILE")]
public int SendingProfile { get; set; }
[Required]
[Column("REFERENCE_ID")]
public int ReferenceId { get; set; }
[Column("REFERENCE_STRING", TypeName = "varchar(200)")]
[StringLength(200)]
public string? ReferenceString { get; set; }
[Column("ENTITY_ID")]
public int? EntityId { get; set; }
[Required]
[Column("WF_ID")]
public int WfId { get; set; }
[Column("WF_REFERENCE", TypeName = "varchar(200)")]
[StringLength(200)]
public string? WfReference { get; set; }
[Required]
[Column("EMAIL_ADRESS", TypeName = "varchar(1000)")]
[StringLength(1000)]
public string EmailAddress { get; set; }
[Required]
[Column("EMAIL_SUBJ", TypeName = "varchar(500)")]
[StringLength(500)]
public string EmailSubj { get; set; }
[Required]
[Column("EMAIL_BODY", TypeName = "varchar(max)")]
public string EmailBody { get; set; }
[Column("EMAIL_ATTMT1", TypeName = "varchar(512)")]
[StringLength(512)]
public string? EmailAttmt1 { get; set; }
[Column("EMAIL_SENT")]
public DateTime? EmailSent { get; set; }
[Column("COMMENT", TypeName = "varchar(500)")]
[StringLength(500)]
public string? Comment { get; set; }
[Required]
[Column("ADDED_WHO", TypeName = "varchar(50)")]
[StringLength(50)]
[DefaultValue("DEFAULT")]
public string AddedWho { get; set; }
[Column("ADDED_WHEN")]
[DefaultValue("getdate()")]
[NotMapped]
public DateTime? AddedWhen { get; set; }
[Column("CHANGED_WHO", TypeName = "varchar(50)")]
[StringLength(50)]
public string? ChangedWho { get; set; }
[Column("CHANGED_WHEN")]
public DateTime? ChangedWhen { get; set; }
[Column("ERROR_TIMESTAMP")]
public DateTime? ErrorTimestamp { get; set; }
[Column("ERROR_MSG", TypeName = "varchar(900)")]
[StringLength(900)]
public string? ErrorMsg { get; set; }
}
}