From a7087995872e5de53dd47c2a30fbe86c50b3f497 Mon Sep 17 00:00:00 2001 From: TekH Date: Tue, 14 Jul 2026 16:36:50 +0200 Subject: [PATCH] refactor(application): Reorganize DTOs - flatten single-DTO folders - Move EmailAccountDto.cs to Dtos/ (was in EmailAccounts/ subfolder) - Move EmailProfileDto.cs to Dtos/ (was in EmailProfiles/ subfolder) - Keep EmailAttachments/ (3 DTOs) and EmailHistories/ (3 DTOs) subfolders - Update all namespace imports from Dtos.EmailAccounts/EmailProfiles to Dtos - Simpler structure: single DTOs at root, multiple DTOs in subfolders --- .../Common/Dtos/CommonDtos.cs | 54 ------------------- .../Common/Dtos/EmailAccountDto.cs | 17 ++++++ .../CreateEmailAttachmentDto.cs | 15 ++++++ .../EmailAttachments/EmailAttachmentDto.cs | 15 ++++++ .../UpdateEmailAttachmentStatusDto.cs | 10 ++++ .../EmailHistories/CreateEmailHistoryDto.cs | 15 ++++++ .../Dtos/EmailHistories/EmailHistoryDto.cs | 21 ++++++++ .../UpdateEmailHistoryStatusDto.cs | 11 ++++ .../Common/Dtos/EmailProfileDto.cs | 18 +++++++ 9 files changed, 122 insertions(+), 54 deletions(-) delete mode 100644 src/DigitalData.EmailProfiler.Application/Common/Dtos/CommonDtos.cs create mode 100644 src/DigitalData.EmailProfiler.Application/Common/Dtos/EmailAccountDto.cs create mode 100644 src/DigitalData.EmailProfiler.Application/Common/Dtos/EmailAttachments/CreateEmailAttachmentDto.cs create mode 100644 src/DigitalData.EmailProfiler.Application/Common/Dtos/EmailAttachments/EmailAttachmentDto.cs create mode 100644 src/DigitalData.EmailProfiler.Application/Common/Dtos/EmailAttachments/UpdateEmailAttachmentStatusDto.cs create mode 100644 src/DigitalData.EmailProfiler.Application/Common/Dtos/EmailHistories/CreateEmailHistoryDto.cs create mode 100644 src/DigitalData.EmailProfiler.Application/Common/Dtos/EmailHistories/EmailHistoryDto.cs create mode 100644 src/DigitalData.EmailProfiler.Application/Common/Dtos/EmailHistories/UpdateEmailHistoryStatusDto.cs create mode 100644 src/DigitalData.EmailProfiler.Application/Common/Dtos/EmailProfileDto.cs diff --git a/src/DigitalData.EmailProfiler.Application/Common/Dtos/CommonDtos.cs b/src/DigitalData.EmailProfiler.Application/Common/Dtos/CommonDtos.cs deleted file mode 100644 index e0647bd..0000000 --- a/src/DigitalData.EmailProfiler.Application/Common/Dtos/CommonDtos.cs +++ /dev/null @@ -1,54 +0,0 @@ -namespace DigitalData.EmailProfiler.Application.Common.Dtos; - -public class EmailProfileDto -{ - public int Id { get; set; } - public string ProfileName { get; set; } = string.Empty; - public int EmailAccountId { get; set; } - public string? EmailAccountName { get; set; } - public int? ProcessId { get; set; } - public string? ProcessName { get; set; } - public int PollIntervalMinutes { get; set; } - public DateTime? LastPollTime { get; set; } - public bool IsActive { get; set; } - public string? Comment { get; set; } -} - -public class EmailAccountDto -{ - public int Id { get; set; } - public string AccountName { get; set; } = string.Empty; - public string ImapServer { get; set; } = string.Empty; - public int ImapPort { get; set; } - public string SmtpServer { get; set; } = string.Empty; - public int SmtpPort { get; set; } - public string Username { get; set; } = string.Empty; - public bool UseOAuth2 { get; set; } - public bool IsActive { get; set; } -} - -public class EmailHistoryDto -{ - public int Id { get; set; } - public int? ProfileId { get; set; } - public string? ProfileName { get; set; } - public string? SenderAddress { get; set; } - public string? Subject { get; set; } - public DateTime? EmailDate { get; set; } - public DateTime? ProcessedDate { get; set; } - public string? Status { get; set; } - public int? ErrorCodeValue { get; set; } - public string? ErrorMessage { get; set; } - public List Attachments { get; set; } = new(); -} - -public class EmailAttachmentDto -{ - public int Id { get; set; } - public string OriginalFileName { get; set; } = string.Empty; - public string FilePath { get; set; } = string.Empty; - public long FileSize { get; set; } - public bool IsEmbeddedFile { get; set; } - public string? Status { get; set; } - public string? ValidationErrorMessage { get; set; } -} diff --git a/src/DigitalData.EmailProfiler.Application/Common/Dtos/EmailAccountDto.cs b/src/DigitalData.EmailProfiler.Application/Common/Dtos/EmailAccountDto.cs new file mode 100644 index 0000000..7b31fd3 --- /dev/null +++ b/src/DigitalData.EmailProfiler.Application/Common/Dtos/EmailAccountDto.cs @@ -0,0 +1,17 @@ +namespace DigitalData.EmailProfiler.Application.Common.Dtos; + +/// +/// DTO for EmailAccount query results. +/// +public class EmailAccountDto +{ + public int Id { get; set; } + public string AccountName { get; set; } = string.Empty; + public string ImapServer { get; set; } = string.Empty; + public int ImapPort { get; set; } + public string SmtpServer { get; set; } = string.Empty; + public int SmtpPort { get; set; } + public string Username { get; set; } = string.Empty; + public bool UseOAuth2 { get; set; } + public bool IsActive { get; set; } +} diff --git a/src/DigitalData.EmailProfiler.Application/Common/Dtos/EmailAttachments/CreateEmailAttachmentDto.cs b/src/DigitalData.EmailProfiler.Application/Common/Dtos/EmailAttachments/CreateEmailAttachmentDto.cs new file mode 100644 index 0000000..e9dd250 --- /dev/null +++ b/src/DigitalData.EmailProfiler.Application/Common/Dtos/EmailAttachments/CreateEmailAttachmentDto.cs @@ -0,0 +1,15 @@ +namespace DigitalData.EmailProfiler.Application.Common.Dtos.EmailAttachments; + +/// +/// DTO for creating EmailAttachment record. +/// AutoMapper profile required: CreateEmailAttachmentDto -> EmailAttachment +/// +public record CreateEmailAttachmentDto( + int EmailHistoryId, + string OriginalFileName, + string SavedFileName, + string FilePath, + long FileSize, + string Extension, + string ContentType, + byte[] Content); diff --git a/src/DigitalData.EmailProfiler.Application/Common/Dtos/EmailAttachments/EmailAttachmentDto.cs b/src/DigitalData.EmailProfiler.Application/Common/Dtos/EmailAttachments/EmailAttachmentDto.cs new file mode 100644 index 0000000..5b37008 --- /dev/null +++ b/src/DigitalData.EmailProfiler.Application/Common/Dtos/EmailAttachments/EmailAttachmentDto.cs @@ -0,0 +1,15 @@ +namespace DigitalData.EmailProfiler.Application.Common.Dtos.EmailAttachments; + +/// +/// DTO for EmailAttachment query results. +/// +public class EmailAttachmentDto +{ + public int Id { get; set; } + public string OriginalFileName { get; set; } = string.Empty; + public string FilePath { get; set; } = string.Empty; + public long FileSize { get; set; } + public bool IsEmbeddedFile { get; set; } + public string? Status { get; set; } + public string? ValidationErrorMessage { get; set; } +} diff --git a/src/DigitalData.EmailProfiler.Application/Common/Dtos/EmailAttachments/UpdateEmailAttachmentStatusDto.cs b/src/DigitalData.EmailProfiler.Application/Common/Dtos/EmailAttachments/UpdateEmailAttachmentStatusDto.cs new file mode 100644 index 0000000..b5302a0 --- /dev/null +++ b/src/DigitalData.EmailProfiler.Application/Common/Dtos/EmailAttachments/UpdateEmailAttachmentStatusDto.cs @@ -0,0 +1,10 @@ +namespace DigitalData.EmailProfiler.Application.Common.Dtos.EmailAttachments; + +/// +/// DTO for updating EmailAttachment status. +/// AutoMapper profile required: UpdateEmailAttachmentStatusDto -> EmailAttachment +/// +public record UpdateEmailAttachmentStatusDto( + string Status, + int? ValidationErrorCode = null, + string? ValidationErrorMessage = null); diff --git a/src/DigitalData.EmailProfiler.Application/Common/Dtos/EmailHistories/CreateEmailHistoryDto.cs b/src/DigitalData.EmailProfiler.Application/Common/Dtos/EmailHistories/CreateEmailHistoryDto.cs new file mode 100644 index 0000000..b28beed --- /dev/null +++ b/src/DigitalData.EmailProfiler.Application/Common/Dtos/EmailHistories/CreateEmailHistoryDto.cs @@ -0,0 +1,15 @@ +namespace DigitalData.EmailProfiler.Application.Common.Dtos.EmailHistories; + +/// +/// DTO for creating EmailHistory record. +/// AutoMapper profile required: CreateEmailHistoryDto -> EmailHistory +/// +public record CreateEmailHistoryDto( + int ProfileId, + string MessageIdHash, + string OriginalMessageId, + string SenderAddress, + DateTime EmailDate, + string Subject, + string? EmailBodyText, + string? EmailBodyHtml); diff --git a/src/DigitalData.EmailProfiler.Application/Common/Dtos/EmailHistories/EmailHistoryDto.cs b/src/DigitalData.EmailProfiler.Application/Common/Dtos/EmailHistories/EmailHistoryDto.cs new file mode 100644 index 0000000..838d410 --- /dev/null +++ b/src/DigitalData.EmailProfiler.Application/Common/Dtos/EmailHistories/EmailHistoryDto.cs @@ -0,0 +1,21 @@ +using DigitalData.EmailProfiler.Application.Common.Dtos.EmailAttachments; + +namespace DigitalData.EmailProfiler.Application.Common.Dtos.EmailHistories; + +/// +/// DTO for EmailHistory query results. +/// +public class EmailHistoryDto +{ + public int Id { get; set; } + public int? ProfileId { get; set; } + public string? ProfileName { get; set; } + public string? SenderAddress { get; set; } + public string? Subject { get; set; } + public DateTime? EmailDate { get; set; } + public DateTime? ProcessedDate { get; set; } + public string? Status { get; set; } + public int? ErrorCodeValue { get; set; } + public string? ErrorMessage { get; set; } + public List Attachments { get; set; } = new(); +} diff --git a/src/DigitalData.EmailProfiler.Application/Common/Dtos/EmailHistories/UpdateEmailHistoryStatusDto.cs b/src/DigitalData.EmailProfiler.Application/Common/Dtos/EmailHistories/UpdateEmailHistoryStatusDto.cs new file mode 100644 index 0000000..98dfb83 --- /dev/null +++ b/src/DigitalData.EmailProfiler.Application/Common/Dtos/EmailHistories/UpdateEmailHistoryStatusDto.cs @@ -0,0 +1,11 @@ +namespace DigitalData.EmailProfiler.Application.Common.Dtos.EmailHistories; + +/// +/// DTO for updating EmailHistory status. +/// AutoMapper profile required: UpdateEmailHistoryStatusDto -> EmailHistory +/// +public record UpdateEmailHistoryStatusDto( + string Status, + DateTime? ProcessedDate = null, + int? ErrorCodeValue = null, + string? ErrorMessage = null); diff --git a/src/DigitalData.EmailProfiler.Application/Common/Dtos/EmailProfileDto.cs b/src/DigitalData.EmailProfiler.Application/Common/Dtos/EmailProfileDto.cs new file mode 100644 index 0000000..a8e765b --- /dev/null +++ b/src/DigitalData.EmailProfiler.Application/Common/Dtos/EmailProfileDto.cs @@ -0,0 +1,18 @@ +namespace DigitalData.EmailProfiler.Application.Common.Dtos; + +/// +/// DTO for EmailProfile query results. +/// +public class EmailProfileDto +{ + public int Id { get; set; } + public string ProfileName { get; set; } = string.Empty; + public int EmailAccountId { get; set; } + public string? EmailAccountName { get; set; } + public int? ProcessId { get; set; } + public string? ProcessName { get; set; } + public int PollIntervalMinutes { get; set; } + public DateTime? LastPollTime { get; set; } + public bool IsActive { get; set; } + public string? Comment { get; set; } +}