MediatR Commands (CQRS Pattern): - CreateEmailProfileCommand + Handler - UpdateEmailProfileCommand + Handler - DeleteEmailProfileCommand + Handler - CreateEmailAccountCommand + Handler - ProcessEmailCommand + Handler (core email processing logic) Command Handlers: - Create/Update/Delete operations for EmailProfile - Create operation for EmailAccount - ProcessEmail: Complete email processing workflow including: * Duplicate detection using MessageId hash * Email history creation * PDF attachment validation * windream DMS archiving support (placeholder) * Domain event publishing (EmailProcessedEvent) * Error handling and status tracking Exception Improvements: - Added ErrorCode property to DomainException - Added ErrorCode overload to ValidationException - Simplified AttachmentProcessingException to use base ErrorCode Field Mappings Fixed: - EmailProfile: ProcessId (not EmailProcessId), ValidationSql (not SenderFilter/SubjectFilter) - EmailAccount: Username, EncryptedPassword, UseOAuth2, EncryptedClientSecret - EmailHistory: SenderAddress, EmailDate, OriginalMessageId, EmailBodyText/Html - EmailAttachment: OriginalFileName, SavedFileName, FilePath, FileSize - Audit fields: AddedWhen/AddedWho, ChangedWhen/ChangedWho (not CreatedDate/By, ModifiedDate/By) All commands follow Clean Architecture and use UnitOfWork pattern. Build successful with 1 minor warning (dmsService marked for future implementation).
19 lines
459 B
C#
19 lines
459 B
C#
using DigitalData.EmailProfiler.Domain.Enums;
|
|
|
|
namespace DigitalData.EmailProfiler.Domain.Exceptions;
|
|
|
|
public class ValidationException : DomainException
|
|
{
|
|
public ValidationException(string message) : base(message)
|
|
{
|
|
}
|
|
|
|
public ValidationException(string message, ErrorCode errorCode) : base(message, errorCode)
|
|
{
|
|
}
|
|
|
|
public ValidationException(string message, Exception innerException) : base(message, innerException)
|
|
{
|
|
}
|
|
}
|