refactor: Rename EmailPorifler to MessagingService

This commit is contained in:
2026-07-24 13:59:43 +02:00
parent 77d3b52d16
commit 5e587da957
58 changed files with 202 additions and 202 deletions

View File

@@ -1,11 +0,0 @@
using Microsoft.EntityFrameworkCore;
namespace DigitalData.EmailProfiler.Infrastructure.Persistence;
/// <summary>
/// Entity Framework Core DbContext for EmailProfiler.
/// IMPORTANT: This context maps to a LEGACY database - NO schema modifications allowed!
/// </summary>
public class EmailProfilerDbContext(DbContextOptions<EmailProfilerDbContext> options) : DbContext(options)
{
}

View File

@@ -1,8 +1,8 @@
using DigitalData.EmailProfiler.Application.EmailSending.Commands;
using DigitalData.MessagingService.Application.EmailSending.Commands;
using MediatR;
using Microsoft.AspNetCore.Mvc;
namespace DigitalData.EmailProfiler.API.Controllers;
namespace DigitalData.MessagingService.API.Controllers;
/// <summary>
/// Email sending API controller

View File

@@ -4,7 +4,7 @@
<TargetFramework>net8.0</TargetFramework>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
<UserSecretsId>dotnet-DigitalData.EmailProfiler.Service-e7ef6a9a-436f-48a1-b4f6-ec9381c8cb47</UserSecretsId>
<UserSecretsId>dotnet-DigitalData.MessagingService.Service-e7ef6a9a-436f-48a1-b4f6-ec9381c8cb47</UserSecretsId>
</PropertyGroup>
<ItemGroup>
@@ -21,9 +21,9 @@
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\DigitalData.EmailProfiler.Application\DigitalData.EmailProfiler.Application.csproj" />
<ProjectReference Include="..\DigitalData.EmailProfiler.Domain\DigitalData.EmailProfiler.Domain.csproj" />
<ProjectReference Include="..\DigitalData.EmailProfiler.Infrastructure\DigitalData.EmailProfiler.Infrastructure.csproj" />
<ProjectReference Include="..\DigitalData.MessagingService.Application\DigitalData.MessagingService.Application.csproj" />
<ProjectReference Include="..\DigitalData.MessagingService.Domain\DigitalData.MessagingService.Domain.csproj" />
<ProjectReference Include="..\DigitalData.MessagingService.Infrastructure\DigitalData.MessagingService.Infrastructure.csproj" />
</ItemGroup>
</Project>

View File

@@ -1,8 +1,8 @@
using System.Net;
using System.Text.Json;
using DigitalData.EmailProfiler.Domain.Exceptions;
using DigitalData.MessagingService.Domain.Exceptions;
namespace DigitalData.EmailProfiler.API.Middleware;
namespace DigitalData.MessagingService.API.Middleware;
/// <summary>
/// Global exception handling middleware

View File

@@ -1,7 +1,7 @@
using DigitalData.EmailProfiler.API.Middleware;
using DigitalData.EmailProfiler.Application;
using DigitalData.EmailProfiler.Application.Common.Dtos;
using DigitalData.EmailProfiler.Infrastructure;
using DigitalData.MessagingService.API.Middleware;
using DigitalData.MessagingService.Application;
using DigitalData.MessagingService.Application.Common.Dtos;
using DigitalData.MessagingService.Infrastructure;
using Serilog;
// Configure Serilog early
@@ -16,7 +16,7 @@ Log.Logger = new LoggerConfiguration()
try
{
Log.Information("Starting EmailProfiler API");
Log.Information("Starting MessagingService API");
var builder = WebApplication.CreateBuilder(args);
@@ -71,13 +71,13 @@ try
app.MapControllers();
Log.Information("EmailProfiler API started successfully");
Log.Information("MessagingService API started successfully");
app.Run();
}
catch (Exception ex)
{
Log.Fatal(ex, "EmailProfiler API failed to start");
Log.Fatal(ex, "MessagingService API failed to start");
throw;
}
finally

View File

@@ -1,4 +1,4 @@
namespace DigitalData.EmailProfiler.Application.Common.Dtos;
namespace DigitalData.MessagingService.Application.Common.Dtos;
/// <summary>
/// DTO for EmailAccount query results.

View File

@@ -1,4 +1,4 @@
namespace DigitalData.EmailProfiler.Application.Common.Events;
namespace DigitalData.MessagingService.Application.Common.Events;
public class OutgoingEmailEvent
{

View File

@@ -1,6 +1,6 @@
using MediatR;
namespace DigitalData.EmailProfiler.Application.Common.Interfaces;
namespace DigitalData.MessagingService.Application.Common.Interfaces;
/// <summary>
/// Interface for publishing commands to a message broker (e.g., RabbitMQ)

View File

@@ -1,4 +1,4 @@
namespace DigitalData.EmailProfiler.Application.Common.Interfaces;
namespace DigitalData.MessagingService.Application.Common.Interfaces;
/// <summary>
/// Email service interface for SMTP operations.

View File

@@ -1,4 +1,4 @@
namespace DigitalData.EmailProfiler.Application.Common.Interfaces;
namespace DigitalData.MessagingService.Application.Common.Interfaces;
/// <summary>
/// Encryption service interface for password encryption.

View File

@@ -1,7 +1,7 @@
using DigitalData.EmailProfiler.Application.Common.Events;
using DigitalData.EmailProfiler.Application.EmailSending.Commands;
using DigitalData.MessagingService.Application.Common.Events;
using DigitalData.MessagingService.Application.EmailSending.Commands;
namespace DigitalData.EmailProfiler.Application.Common.Interfaces;
namespace DigitalData.MessagingService.Application.Common.Interfaces;
/// <summary>
/// Email queue interface for outgoing emails.

View File

@@ -1,4 +1,4 @@
namespace DigitalData.EmailProfiler.Application.Common.Interfaces;
namespace DigitalData.MessagingService.Application.Common.Interfaces;
/// <summary>
/// PDF processing service interface.

View File

@@ -1,6 +1,6 @@
using System.Linq.Expressions;
namespace DigitalData.EmailProfiler.Application.Common.Interfaces;
namespace DigitalData.MessagingService.Application.Common.Interfaces;
/// <summary>
/// Generic repository interface for CRUD operations.

View File

@@ -1,8 +1,8 @@
using AutoMapper;
using DigitalData.EmailProfiler.Application.Common.Events;
using DigitalData.EmailProfiler.Application.EmailSending.Commands;
using DigitalData.MessagingService.Application.Common.Events;
using DigitalData.MessagingService.Application.EmailSending.Commands;
namespace DigitalData.EmailProfiler.Application.Common.Mappings;
namespace DigitalData.MessagingService.Application.Common.Mappings;
/// <summary>
/// AutoMapper profile for Emails

View File

@@ -3,7 +3,7 @@ using FluentValidation;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
namespace DigitalData.EmailProfiler.Application;
namespace DigitalData.MessagingService.Application;
/// <summary>
/// Dependency injection configuration for Application layer.

View File

@@ -7,7 +7,7 @@
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\DigitalData.EmailProfiler.Domain\DigitalData.EmailProfiler.Domain.csproj" />
<ProjectReference Include="..\DigitalData.MessagingService.Domain\DigitalData.MessagingService.Domain.csproj" />
</ItemGroup>
<ItemGroup>

View File

@@ -1,9 +1,9 @@
using AutoMapper;
using DigitalData.EmailProfiler.Application.Common.Events;
using DigitalData.EmailProfiler.Application.Common.Interfaces;
using DigitalData.MessagingService.Application.Common.Events;
using DigitalData.MessagingService.Application.Common.Interfaces;
using MediatR;
namespace DigitalData.EmailProfiler.Application.EmailSending.Commands;
namespace DigitalData.MessagingService.Application.EmailSending.Commands;
/// <summary>
/// Command to send an email (enqueue to RabbitMQ)

View File

@@ -1,7 +1,7 @@
using DigitalData.EmailProfiler.Application.EmailSending.Commands;
using DigitalData.MessagingService.Application.EmailSending.Commands;
using FluentValidation;
namespace DigitalData.EmailProfiler.Application.EmailSending.Validators;
namespace DigitalData.MessagingService.Application.EmailSending.Validators;
/// <summary>
/// Validator for SendEmailCommand

View File

@@ -1,4 +1,4 @@
namespace DigitalData.EmailProfiler.Domain.Common;
namespace DigitalData.MessagingService.Domain.Common;
public abstract class BaseEntity
{

View File

@@ -1,4 +1,4 @@
namespace DigitalData.EmailProfiler.Domain.Common;
namespace DigitalData.MessagingService.Domain.Common;
/// <summary>
/// Domain-wide constants

View File

@@ -1,4 +1,4 @@
namespace DigitalData.EmailProfiler.Domain.Common;
namespace DigitalData.MessagingService.Domain.Common;
/// <summary>
/// Marker interface for aggregate roots in DDD

View File

@@ -1,4 +1,4 @@
namespace DigitalData.EmailProfiler.Domain.Common;
namespace DigitalData.MessagingService.Domain.Common;
/// <summary>
/// Base class for value objects that implement equality by value

View File

@@ -1,4 +1,4 @@
namespace DigitalData.EmailProfiler.Domain.Enums;
namespace DigitalData.MessagingService.Domain.Enums;
public enum AttachmentStatus
{

View File

@@ -1,4 +1,4 @@
namespace DigitalData.EmailProfiler.Domain.Enums;
namespace DigitalData.MessagingService.Domain.Enums;
public enum AuthenticationType
{

View File

@@ -1,4 +1,4 @@
namespace DigitalData.EmailProfiler.Domain.Enums;
namespace DigitalData.MessagingService.Domain.Enums;
public enum EmailStatus
{

View File

@@ -1,4 +1,4 @@
namespace DigitalData.EmailProfiler.Domain.Enums;
namespace DigitalData.MessagingService.Domain.Enums;
public enum ErrorCode
{

View File

@@ -1,4 +1,4 @@
namespace DigitalData.EmailProfiler.Domain.Enums;
namespace DigitalData.MessagingService.Domain.Enums;
public enum ProcessType
{

View File

@@ -1,6 +1,6 @@
using DigitalData.EmailProfiler.Domain.Enums;
using DigitalData.MessagingService.Domain.Enums;
namespace DigitalData.EmailProfiler.Domain.Exceptions;
namespace DigitalData.MessagingService.Domain.Exceptions;
public class AttachmentProcessingException : DomainException
{

View File

@@ -1,4 +1,4 @@
namespace DigitalData.EmailProfiler.Domain.Exceptions;
namespace DigitalData.MessagingService.Domain.Exceptions;
/// <summary>
/// Exception thrown when OAuth2 authentication fails.

View File

@@ -1,4 +1,4 @@
namespace DigitalData.EmailProfiler.Domain.Exceptions;
namespace DigitalData.MessagingService.Domain.Exceptions;
/// <summary>
/// Exception thrown when DMS (windream) is not available or not configured properly.

View File

@@ -1,6 +1,6 @@
using DigitalData.EmailProfiler.Domain.Enums;
using DigitalData.MessagingService.Domain.Enums;
namespace DigitalData.EmailProfiler.Domain.Exceptions;
namespace DigitalData.MessagingService.Domain.Exceptions;
public class DomainException : Exception
{

View File

@@ -1,4 +1,4 @@
namespace DigitalData.EmailProfiler.Domain.Exceptions;
namespace DigitalData.MessagingService.Domain.Exceptions;
/// <summary>
/// Exception thrown when a PDF file is invalid or corrupted.

View File

@@ -1,4 +1,4 @@
namespace DigitalData.EmailProfiler.Domain.Exceptions;
namespace DigitalData.MessagingService.Domain.Exceptions;
/// <summary>
/// Exception thrown when a requested entity is not found.

View File

@@ -1,6 +1,6 @@
using DigitalData.EmailProfiler.Domain.Enums;
using DigitalData.MessagingService.Domain.Enums;
namespace DigitalData.EmailProfiler.Domain.Exceptions;
namespace DigitalData.MessagingService.Domain.Exceptions;
public class ValidationException : DomainException
{

View File

@@ -1,6 +1,6 @@
using DigitalData.EmailProfiler.Domain.ValueObjects;
using DigitalData.MessagingService.Domain.ValueObjects;
namespace DigitalData.EmailProfiler.Domain.Services;
namespace DigitalData.MessagingService.Domain.Services;
public interface IMessageIdGenerator
{

View File

@@ -1,8 +1,8 @@
using System.ComponentModel.DataAnnotations;
using DigitalData.EmailProfiler.Domain.Common;
using DigitalData.EmailProfiler.Domain.Exceptions;
using DigitalData.MessagingService.Domain.Common;
using DigitalData.MessagingService.Domain.Exceptions;
namespace DigitalData.EmailProfiler.Domain.ValueObjects;
namespace DigitalData.MessagingService.Domain.ValueObjects;
/// <summary>
/// Value object representing an email address with validation

View File

@@ -1,8 +1,8 @@
using System.Security.Cryptography;
using System.Text;
using DigitalData.EmailProfiler.Domain.Common;
using DigitalData.MessagingService.Domain.Common;
namespace DigitalData.EmailProfiler.Domain.ValueObjects;
namespace DigitalData.MessagingService.Domain.ValueObjects;
/// <summary>
/// Value object representing a unique message identifier with hash generation

View File

@@ -1,13 +1,13 @@
using DigitalData.EmailProfiler.Application.Common.Interfaces;
using DigitalData.EmailProfiler.Infrastructure.Messaging;
using DigitalData.EmailProfiler.Infrastructure.Queue;
using DigitalData.EmailProfiler.Infrastructure.Services;
using DigitalData.EmailProfiler.Infrastructure.Services.Background;
using DigitalData.MessagingService.Application.Common.Interfaces;
using DigitalData.MessagingService.Infrastructure.Messaging;
using DigitalData.MessagingService.Infrastructure.Queue;
using DigitalData.MessagingService.Infrastructure.Services;
using DigitalData.MessagingService.Infrastructure.Services.Background;
using Microsoft.AspNetCore.DataProtection;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
namespace DigitalData.EmailProfiler.Infrastructure;
namespace DigitalData.MessagingService.Infrastructure;
/// <summary>
/// Dependency injection configuration for Infrastructure layer
@@ -41,7 +41,7 @@ public static class DependencyInjection
// --- Data Protection (for encryption) ---
services.AddDataProtection()
.PersistKeysToFileSystem(new DirectoryInfo(@"C:\ProgramData\EmailService\Keys"))
.SetApplicationName("EmailProfiler");
.SetApplicationName("MessagingService");
// Register Background Workers
services.AddHostedService<AsyncInitWorker>();

View File

@@ -7,8 +7,8 @@
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\DigitalData.EmailProfiler.Domain\DigitalData.EmailProfiler.Domain.csproj" />
<ProjectReference Include="..\DigitalData.EmailProfiler.Application\DigitalData.EmailProfiler.Application.csproj" />
<ProjectReference Include="..\DigitalData.MessagingService.Domain\DigitalData.MessagingService.Domain.csproj" />
<ProjectReference Include="..\DigitalData.MessagingService.Application\DigitalData.MessagingService.Application.csproj" />
</ItemGroup>
<ItemGroup>

View File

@@ -1,4 +1,4 @@
namespace DigitalData.EmailProfiler.Infrastructure.Messaging;
namespace DigitalData.MessagingService.Infrastructure.Messaging;
/// <summary>
/// Configuration for RabbitMQ connection

View File

@@ -0,0 +1,11 @@
using Microsoft.EntityFrameworkCore;
namespace DigitalData.MessagingService.Infrastructure.Persistence;
/// <summary>
/// Entity Framework Core DbContext for MessagingService.
/// IMPORTANT: This context maps to a LEGACY database - NO schema modifications allowed!
/// </summary>
public class MessagingServiceDbContext(DbContextOptions<MessagingServiceDbContext> options) : DbContext(options)
{
}

View File

@@ -1,14 +1,14 @@
using System.Text;
using System.Text.Json;
using DigitalData.EmailProfiler.Application.Common.Interfaces;
using DigitalData.EmailProfiler.Infrastructure.Messaging;
using DigitalData.MessagingService.Application.Common.Interfaces;
using DigitalData.MessagingService.Infrastructure.Messaging;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
using RabbitMQ.Client;
using RabbitMQ.Client.Events;
using DigitalData.EmailProfiler.Application.Common.Events;
using DigitalData.MessagingService.Application.Common.Events;
namespace DigitalData.EmailProfiler.Infrastructure.Queue;
namespace DigitalData.MessagingService.Infrastructure.Queue;
/// <summary>
/// RabbitMQ-based email queue implementation for outgoing emails.

View File

@@ -1,17 +1,17 @@
using System.Linq.Expressions;
using AutoMapper;
using DigitalData.EmailProfiler.Application.Common.Interfaces;
using DigitalData.EmailProfiler.Domain.Exceptions;
using DigitalData.EmailProfiler.Infrastructure.Persistence;
using DigitalData.MessagingService.Application.Common.Interfaces;
using DigitalData.MessagingService.Domain.Exceptions;
using DigitalData.MessagingService.Infrastructure.Persistence;
using Microsoft.EntityFrameworkCore;
namespace DigitalData.EmailProfiler.Infrastructure.Repositories;
namespace DigitalData.MessagingService.Infrastructure.Repositories;
/// <summary>
/// Generic repository implementation with AutoMapper-based CRUD operations.
/// IMPORTANT: Each operation auto-saves changes - NO explicit SaveChangesAsync needed!
/// </summary>
public class Repository<TEntity>(EmailProfilerDbContext Context, IMapper Mapper) : IRepository<TEntity> where TEntity : class
public class Repository<TEntity>(MessagingServiceDbContext Context, IMapper Mapper) : IRepository<TEntity> where TEntity : class
{
private readonly DbSet<TEntity> _dbSet = Context.Set<TEntity>();

View File

@@ -1,9 +1,9 @@
using DigitalData.EmailProfiler.Application.Common.Interfaces;
using DigitalData.EmailProfiler.Infrastructure.Queue;
using DigitalData.MessagingService.Application.Common.Interfaces;
using DigitalData.MessagingService.Infrastructure.Queue;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;
namespace DigitalData.EmailProfiler.Infrastructure.Services.Background;
namespace DigitalData.MessagingService.Infrastructure.Services.Background;
/// <summary>
/// A hosted background service responsible for initializing the outgoing email queue consumer.

View File

@@ -1,7 +1,7 @@
using DigitalData.EmailProfiler.Application.Common.Interfaces;
using DigitalData.MessagingService.Application.Common.Interfaces;
using Microsoft.AspNetCore.DataProtection;
namespace DigitalData.EmailProfiler.Infrastructure.Services;
namespace DigitalData.MessagingService.Infrastructure.Services;
/// <summary>
/// Encryption service using ASP.NET Core Data Protection API.
@@ -9,7 +9,7 @@ namespace DigitalData.EmailProfiler.Infrastructure.Services;
/// </summary>
public class DataProtectionEncryptionService(IDataProtectionProvider Provider) : IEncryptionService
{
private readonly IDataProtector Protector = Provider.CreateProtector("EmailProfiler.Passwords");
private readonly IDataProtector Protector = Provider.CreateProtector("MessagingService.Passwords");
public string Encrypt(string plainText)
{

View File

@@ -1,8 +1,8 @@
using DevExpress.Pdf;
using DigitalData.EmailProfiler.Application.Common.Interfaces;
using DigitalData.EmailProfiler.Domain.Exceptions;
using DigitalData.MessagingService.Application.Common.Interfaces;
using DigitalData.MessagingService.Domain.Exceptions;
namespace DigitalData.EmailProfiler.Infrastructure.Services;
namespace DigitalData.MessagingService.Infrastructure.Services;
/// <summary>
/// PDF processing service using DevExpress.Pdf.

View File

@@ -1,13 +1,13 @@
using System.Text;
using DigitalData.EmailProfiler.Application.Common.Dtos;
using DigitalData.EmailProfiler.Application.Common.Interfaces;
using DigitalData.EmailProfiler.Domain.Exceptions;
using DigitalData.MessagingService.Application.Common.Dtos;
using DigitalData.MessagingService.Application.Common.Interfaces;
using DigitalData.MessagingService.Domain.Exceptions;
using Limilabs.Client.SMTP;
using Limilabs.Mail;
using Limilabs.Mail.Headers;
using Microsoft.Extensions.Options;
namespace DigitalData.EmailProfiler.Infrastructure.Services;
namespace DigitalData.MessagingService.Infrastructure.Services;
/// <summary>
/// Email service using Limilabs Mail.dll for SMTP operations (send-only).