Dloizides.Messaging.Contracts 1.0.3

dotnet add package Dloizides.Messaging.Contracts --version 1.0.3
                    
NuGet\Install-Package Dloizides.Messaging.Contracts -Version 1.0.3
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Dloizides.Messaging.Contracts" Version="1.0.3" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Dloizides.Messaging.Contracts" Version="1.0.3" />
                    
Directory.Packages.props
<PackageReference Include="Dloizides.Messaging.Contracts" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Dloizides.Messaging.Contracts --version 1.0.3
                    
#r "nuget: Dloizides.Messaging.Contracts, 1.0.3"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Dloizides.Messaging.Contracts@1.0.3
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Dloizides.Messaging.Contracts&version=1.0.3
                    
Install as a Cake Addin
#tool nuget:?package=Dloizides.Messaging.Contracts&version=1.0.3
                    
Install as a Cake Tool

Messaging.Contracts

Cross-service event contracts for GDPR operations. Contains event definitions for user deletion, data export, and deletion confirmation workflows.

Installation

dotnet add package Messaging.Contracts

Usage

Reference this package in any service that needs to publish or consume GDPR-related events:

using Messaging.Contracts.Events;

// Publish a user deleted event (from IdentityService)
var evt = new UserDeletedEvent
{
    UserId = userId,
    TenantId = tenantId,
    DeletedAt = DateTime.UtcNow,
    DeletionType = "gdpr_request"
};

// Consume in each service via MassTransit IConsumer<UserDeletedEvent>

Events

Event Description Publisher Consumer(s)
UserDeletedEvent Published when user account deletion is confirmed and executed IdentityService All services
UserDataExportRequest Requests user data from all services for GDPR export IdentityService All services
UserDataExportResponse Response from each service with user data JSON All services IdentityService
DeletionConfirmationEvent Triggers deletion confirmation email IdentityService NotificationService

Event Details

UserDeletedEvent

Published when a user's account deletion grace period has expired and the deletion is being executed. All services consume this to clean up user-specific data.

public sealed record UserDeletedEvent
{
    public required Guid UserId { get; init; }
    public required Guid TenantId { get; init; }
    public required DateTime DeletedAt { get; init; }
    public required string DeletionType { get; init; }  // "gdpr_request" or "admin_action"
}

UserDataExportRequest

Published by IdentityService to all services using MassTransit Request/Reply (Scatter-Gather) to collect user data for a GDPR data export.

public sealed record UserDataExportRequest
{
    public required Guid CorrelationId { get; init; }
    public required Guid UserId { get; init; }
    public required Guid TenantId { get; init; }
}

UserDataExportResponse

Response from each service containing the user's data. Each service queries its own database and returns the results as JSON.

public sealed record UserDataExportResponse
{
    public required Guid CorrelationId { get; init; }
    public required string ServiceName { get; init; }
    public required bool Success { get; init; }
    public string? ErrorMessage { get; init; }
    public required string DataJson { get; init; }
    public required int RecordCount { get; init; }
}

DeletionConfirmationEvent

Published by IdentityService to trigger a confirmation email via NotificationService when a user requests account deletion.

public sealed record DeletionConfirmationEvent
{
    public required Guid UserId { get; init; }
    public required Guid TenantId { get; init; }
    public required string Email { get; init; }
    public required string ConfirmationUrl { get; init; }
    public required DateTime ExpiresAt { get; init; }
}

License

MIT

Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net10.0

    • No dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.3 355 7/8/2026