AugusteVN.Modules.EmailCampaigns._Shared
1.0.6
See the version list below for details.
dotnet add package AugusteVN.Modules.EmailCampaigns._Shared --version 1.0.6
NuGet\Install-Package AugusteVN.Modules.EmailCampaigns._Shared -Version 1.0.6
<PackageReference Include="AugusteVN.Modules.EmailCampaigns._Shared" Version="1.0.6" />
<PackageVersion Include="AugusteVN.Modules.EmailCampaigns._Shared" Version="1.0.6" />
<PackageReference Include="AugusteVN.Modules.EmailCampaigns._Shared" />
paket add AugusteVN.Modules.EmailCampaigns._Shared --version 1.0.6
#r "nuget: AugusteVN.Modules.EmailCampaigns._Shared, 1.0.6"
#:package AugusteVN.Modules.EmailCampaigns._Shared@1.0.6
#addin nuget:?package=AugusteVN.Modules.EmailCampaigns._Shared&version=1.0.6
#tool nuget:?package=AugusteVN.Modules.EmailCampaigns._Shared&version=1.0.6
AugusteVN.Modules.EmailCampaigns._Shared
Contracts, DTOs, route constants, validators, enums, and utility helpers for the EmailCampaigns module.
Part of the AugusteVN Modules collection.
Key Types
Permissions
Flags enum used to authorize EmailCampaigns API endpoints via the .RequirePermission() endpoint filter.
| Member | Value | Description |
|---|---|---|
None |
0 |
No access |
ManageEmailCampaigns |
1 |
Create, update, and manage email campaigns and templates |
ManageEmailSubscribers |
2 |
Manage email subscribers, subscriptions, and deletions |
All |
~None |
All permissions combined |
EmailLists
Flags enum for per-category subscription management. Subscribers can opt in/out of specific lists, and campaigns/jobs target lists via TargetEmailList.
| Member | Value | Description |
|---|---|---|
None |
0 |
No list |
General |
1 |
General news and updates |
Content |
2 |
Blog posts, articles, and educational content |
Products |
4 |
Product launches, promotions, and discount codes |
All |
~None |
All lists combined |
EmailCampaignStatuses
String constants for the campaign lifecycle. Exposed as StatusList for validation.
| Status | Description |
|---|---|
NotActive |
Campaign is draft or disabled |
InTestMode |
Campaign sends only to test recipients |
Active |
Campaign is live and sending to the target list |
EmailTemplateStatuses
String constants for the template lifecycle. Exposed as StatusList for validation.
| Status | Description |
|---|---|
NotActive |
Template is draft or disabled |
InTestMode |
Template sends only in test mode |
Active |
Template is live and sendable |
EmailJobStatuses
String constants for the job lifecycle. Exposed as StatusList for validation.
| Status | Description |
|---|---|
NotActive |
Job is draft or disabled |
InTestMode |
Job sends only to test recipients |
Active |
Job is live and processing subscribers |
EmailTemplateTriggers
String constants defining when a template is sent. Exposed as TriggerList for validation.
| Trigger | Description |
|---|---|
Sequence |
Sent as part of a multi-step campaign sequence |
Subscribed |
Sent automatically when a subscriber opts in |
OneOff |
Standalone one-time send |
EmailMetricTypes
String constants for email tracking metric types.
| Metric | Description |
|---|---|
Read |
Email opened (tracking pixel loaded) |
LinkClicked |
A link in the email was clicked (proxied) |
Unsubscribed |
Recipient unsubscribed via the unsubscribe link |
EmailCampaignsConfig
Configuration class bound from appsettings.json.
| Property | Type | Description |
|---|---|---|
ApiBaseUrl |
string |
Base URL of the API for constructing proxy/tracking URLs |
FrontendBaseUrl |
string |
Base URL of the frontend for constructing unsubscribe links |
EmailHelper
Static utility class for email URL construction and body processing.
| Method | Description |
|---|---|
ReplaceUrlsInBody(body, traceId, apiBaseUrl) |
Replaces all non-image URLs in the email body with proxied tracking URLs |
ConstructProxyUrl(traceId, metricType, redirectUrl, apiBaseUrl) |
Builds a Base64-encoded proxy URL for metric tracking |
ConstructUnsubscribeUrl(subscriberId, frontendBaseUrl) |
Builds a direct unsubscribe link for a subscriber |
ConstructUnsubscribeProxyUrl(traceId, subscriberId, apiBaseUrl, frontendBaseUrl) |
Builds a proxied unsubscribe URL that tracks the event |
ConstructUnsubscribeHeaders(unsubscribeUrl) |
Returns List-Unsubscribe and List-Unsubscribe-Post headers for RFC 8058 one-click compliance |
Constants:
| Constant | Value | Description |
|---|---|---|
SponsorSegmentPlaceholder |
"@@SPONSOR_SEGMENT_PLACEHOLDER@@" |
Placeholder replaced with sponsor content at send time |
EmailListsProvider
Static helper providing email list enumerations and metadata mappings.
| Method | Description |
|---|---|
GetAll() |
Returns all EmailLists enum values |
GetAllMapped() |
Returns EmailListMap records with name, description, and value for each list |
ApiRoutes
Static route constants used by the API layer to register endpoint groups.
| Constant | Value | Used By |
|---|---|---|
EmailCampaigns |
"EmailCampaigns" |
Campaign CRUD and status endpoints |
EmailTemplates |
"EmailTemplates" |
Template CRUD, status, and test endpoints |
SentEmails |
"SentEmails" |
Sent email listing, metrics, and tracking pixel |
EmailSubscribers |
"EmailSubscribers" |
Subscriber CRUD, count, and subscription management |
EmailJobs |
"EmailJobs" |
Job CRUD and status endpoints |
DTOs
Response Records
| Record | Key Properties | Description |
|---|---|---|
EmailCampaignResponse |
Id, Title, Description, EmailTemplates, Status, TargetEmailList, CreatedAt, LastModifiedAt, StartsAt |
Campaign with nested templates |
EmailTemplateResponse |
Id, EmailCampaignId, Subject, BodyAsMarkdown, BodyAsHtml, BodyAsPlainText, SendDelayInDays, Trigger, Status, CreatedAt, LastModifiedAt |
Individual email template |
EmailSubscriberResponse |
Id, Email, IsSubscribed, IsEmailConfirmed, EmailLists, Created |
Subscriber with list memberships |
SentEmailResponse |
IsSuccess, EmailTemplateId, EmailCampaignId, TraceId, CreatedBy, EmailJobId |
Record of a single sent email |
SentEmailMetricResponse |
SentEmailId, Type, EmailTemplateId, EmailCampaignId, TraceId, EmailJobId |
Single metric event (read/click/unsub) |
EmailMetricCountResponse |
Count, Percentage |
Aggregated metric count with percentage |
EmailJobResponse |
Id, TargetEmailList, StartsAt, Status, EmailTemplateId, EmailTemplate, CreatedAt, LastModifiedAt, PublishAsBlogPost, IncludeSponsorSegment |
Scheduled or triggered job |
EmailListMap |
Name, Description, Value |
Metadata for an email list entry |
Request Records
| Request | Key Properties | Validator |
|---|---|---|
CreateEmailCampaignRequest |
Title, Description, TargetEmailList, StartsAt |
CreateEmailCampaignRequestValidator |
UpdateEmailCampaignStatusRequest |
Id, Status |
UpdateEmailCampaignStatusRequestValidator |
CreateEmailTemplateRequest |
Subject, BodyAsMarkdown, BodyAsHtml, Trigger, EmailCampaignId?, SendDelayInDays |
— |
UpdateEmailTemplateRequest |
Id?, Subject, BodyAsMarkdown, BodyAsHtml, SendDelayInDays, Trigger |
UpdateEmailTemplateRequestValidator |
UpdateEmailTemplateStatusRequest |
Id, Status |
UpdateEmailTemplateStatusRequestValidator |
TestEmailTemplateRequest |
To, Subject, BodyAsHtml |
TestEmailTemplateRequestValidator |
UpsertEmailSubscriberRequest |
Email |
UpsertEmailSubscriberRequestValidator |
UpdateEmailSubscriptionRequest |
Id, EmailLists |
UpdateEmailSubscriptionRequestValidator |
DeleteEmailSubscriberRequest |
Id |
— |
CreateEmailJobRequest |
TargetEmailList, StartsAt, EmailTemplateId, PublishAsBlogPost, IncludeSponsorSegment, PostType? |
CreateEmailJobRequestValidator |
UpdateEmailJobStatusRequest |
Id, Status |
— |
GetEmailCampaignsRequest |
(extends PaginationRequest) |
— |
GetEmailCampaignByIdRequest |
* |
— |
GetEmailTemplatesRequest |
* |
— |
GetEmailTemplateByIdRequest |
* |
— |
GetEmailSubscribersRequest |
* |
— |
GetEmailSubscriberByIdRequest |
* |
GetEmailSubscriberByIdRequestValidator |
CountEmailSubscribersRequest |
IncludeUnsubscribed, EmailLists |
— |
GetEmailJobsRequest |
* |
— |
GetEmailJobByIdRequest |
* |
— |
GetSentEmailsRequest |
EmailTemplateId, EmailCampaignId, EmailJobId, CreatedBy?, ForCampaigns, ForJobs, ForTemplates |
— |
GetSentEmailMetricsRequest |
EmailTemplateId, EmailCampaignId, EmailJobId, CreatedBy?, ForCampaigns, ForJobs, ForTemplates |
— |
Installation
dotnet add package AugusteVN.Modules.EmailCampaigns._Shared
Links
- EmailCampaigns module overview
- EmailCampaigns.Api
- EmailCampaigns.Database
- EmailCampaigns.Features
- EmailCampaigns.Templates
- EmailCampaigns._Shared.Spa
| Product | Versions 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. |
-
net10.0
- AugusteVN._Shared.Contracts (>= 1.1.0)
- AugusteVN._Shared.Extensions (>= 1.1.1)
- FluentValidation (>= 11.11.0)
- Markdig (>= 0.40.0)
NuGet packages (5)
Showing the top 5 NuGet packages that depend on AugusteVN.Modules.EmailCampaigns._Shared:
| Package | Downloads |
|---|---|
|
AugusteVN.Modules.EmailCampaigns.Domain
Domain entities and provider-agnostic interfaces for email campaigns |
|
|
AugusteVN.Modules.EmailCampaigns.Features
CQRS handlers for email campaign operations |
|
|
AugusteVN.Modules.EmailCampaigns._Shared.Spa
Blazor components for managing campaigns, templates, and subscribers |
|
|
AugusteVN.Modules.EmailCampaigns.Api
Minimal API endpoints for campaigns, templates, subscribers, and jobs |
|
|
AugusteVN.Modules.EmailCampaigns.Templates
Razor email templates for marketing emails |
GitHub repositories
This package is not used by any popular GitHub repositories.