From 9725e2fd64ccecf2580a63dad45d573f661c2660 Mon Sep 17 00:00:00 2001 From: Hisham Bin Ateya Date: Tue, 3 Oct 2023 18:21:39 +0300 Subject: [PATCH] Add OC.Notifications.Abstractions docs --- .../INotificationEvents.cs | 34 +++++++++++++++++++ .../INotificationMessage.cs | 15 ++++++++ .../INotificationMethodProvider.cs | 12 ++++--- .../INotificationMethodProviderAccessor.cs | 8 +++++ .../INotificationService.cs | 7 ++-- .../Notification.cs | 11 +++--- .../NotificationContext.cs | 30 ++++++++++++---- 7 files changed, 101 insertions(+), 16 deletions(-) diff --git a/src/OrchardCore/OrchardCore.Notifications.Abstractions/INotificationEvents.cs b/src/OrchardCore/OrchardCore.Notifications.Abstractions/INotificationEvents.cs index 3636d9028bc..1d992febec2 100644 --- a/src/OrchardCore/OrchardCore.Notifications.Abstractions/INotificationEvents.cs +++ b/src/OrchardCore/OrchardCore.Notifications.Abstractions/INotificationEvents.cs @@ -2,19 +2,53 @@ namespace OrchardCore.Notifications; +/// +/// Represents a contract for notification events. +/// public interface INotificationEvents { + /// + /// Occurs before the notification is created. + /// + /// The . Task CreatingAsync(NotificationContext context); + /// + /// Occurs after the notification is created. + /// + /// The . Task CreatedAsync(NotificationContext context); + /// + /// Occurs before the notification is sent. + /// + /// The . + /// The . Task SendingAsync(INotificationMethodProvider provider, NotificationContext context); + /// + /// Occurs after the notification is sent. + /// + /// The . + /// The . Task SentAsync(INotificationMethodProvider provider, NotificationContext context); + /// + /// Occurs when the notification is failed. + /// + /// The . + /// The . Task FailedAsync(INotificationMethodProvider provider, NotificationContext context); + /// + /// Occurs before the notification is sent. + /// + /// The . Task SendingAsync(NotificationContext context); + /// + /// Occurs after the notification is sent. + /// + /// The . Task SentAsync(NotificationContext context); } diff --git a/src/OrchardCore/OrchardCore.Notifications.Abstractions/INotificationMessage.cs b/src/OrchardCore/OrchardCore.Notifications.Abstractions/INotificationMessage.cs index 07274993589..c5e820a9d5e 100644 --- a/src/OrchardCore/OrchardCore.Notifications.Abstractions/INotificationMessage.cs +++ b/src/OrchardCore/OrchardCore.Notifications.Abstractions/INotificationMessage.cs @@ -1,12 +1,27 @@ namespace OrchardCore.Notifications; +/// +/// Represents a contract for notification message information. +/// public interface INotificationMessage { + /// + /// Gets the message summary. + /// string Summary { get; } + /// + /// Gets the plain message body. + /// string TextBody { get; } + /// + /// Gets the HTML message body. + /// string HtmlBody { get; } + /// + /// Gets whether HTML is preferred for the message body. + /// bool IsHtmlPreferred { get; } } diff --git a/src/OrchardCore/OrchardCore.Notifications.Abstractions/INotificationMethodProvider.cs b/src/OrchardCore/OrchardCore.Notifications.Abstractions/INotificationMethodProvider.cs index d2766cc2519..0daf2f24c10 100644 --- a/src/OrchardCore/OrchardCore.Notifications.Abstractions/INotificationMethodProvider.cs +++ b/src/OrchardCore/OrchardCore.Notifications.Abstractions/INotificationMethodProvider.cs @@ -3,23 +3,27 @@ namespace OrchardCore.Notifications; +/// +/// Represents a contract for a notification provider. +/// public interface INotificationMethodProvider { /// - /// Unique name for the provider. + /// Gets the provider name. /// + /// The name should be unique. string Method { get; } /// - /// A localized name for the method. + /// Gets a localized name for the method. /// LocalizedString Name { get; } /// /// Attempts to send the given message to the given notifiable object. /// - /// - /// + /// The notifiable object. + /// The . /// true when the message was successfully sent otherwise false. Task TrySendAsync(object notify, INotificationMessage message); } diff --git a/src/OrchardCore/OrchardCore.Notifications.Abstractions/INotificationMethodProviderAccessor.cs b/src/OrchardCore/OrchardCore.Notifications.Abstractions/INotificationMethodProviderAccessor.cs index 0bab8e15ee9..3263320a444 100644 --- a/src/OrchardCore/OrchardCore.Notifications.Abstractions/INotificationMethodProviderAccessor.cs +++ b/src/OrchardCore/OrchardCore.Notifications.Abstractions/INotificationMethodProviderAccessor.cs @@ -3,7 +3,15 @@ namespace OrchardCore.Notifications; +/// +/// Represents a contract for accessing the . +/// public interface INotificationMethodProviderAccessor { + /// + /// Gets the registered notification method providers. + /// + /// The notifiable object. + /// A list of . Task> GetProvidersAsync(object notify); } diff --git a/src/OrchardCore/OrchardCore.Notifications.Abstractions/INotificationService.cs b/src/OrchardCore/OrchardCore.Notifications.Abstractions/INotificationService.cs index db416cc3252..ef123fe1607 100644 --- a/src/OrchardCore/OrchardCore.Notifications.Abstractions/INotificationService.cs +++ b/src/OrchardCore/OrchardCore.Notifications.Abstractions/INotificationService.cs @@ -2,13 +2,16 @@ namespace OrchardCore.Notifications; +/// +/// Contract for notification service. +/// public interface INotificationService { /// /// Attempts to send the given message to the given notifiable object. /// - /// - /// + /// The notifiable object. + /// The message to be sent. /// The number of messages that were successfully sent to the user. Task SendAsync(object notify, INotificationMessage message); } diff --git a/src/OrchardCore/OrchardCore.Notifications.Abstractions/Notification.cs b/src/OrchardCore/OrchardCore.Notifications.Abstractions/Notification.cs index c366b5e4584..96efa051790 100644 --- a/src/OrchardCore/OrchardCore.Notifications.Abstractions/Notification.cs +++ b/src/OrchardCore/OrchardCore.Notifications.Abstractions/Notification.cs @@ -3,25 +3,28 @@ namespace OrchardCore.Notifications; +/// +/// Represents a notification entity. +/// public class Notification : Entity { /// - /// The Id of the notification. + /// Gets or sets the notification Id. /// public string NotificationId { get; set; } /// - /// The summary of the notification + /// Gets or sets the notification summary. /// public string Summary { get; set; } /// - /// The user id of the user who caused the event to occur. + /// Gets or sets the user id who caused the event to occur. /// public string UserId { get; set; } /// - /// The date and time when the event occurred. + /// Gets or sets the date and time when the event occurred. /// public DateTime CreatedUtc { get; set; } } diff --git a/src/OrchardCore/OrchardCore.Notifications.Abstractions/NotificationContext.cs b/src/OrchardCore/OrchardCore.Notifications.Abstractions/NotificationContext.cs index 13f0025465d..45cd53199e3 100644 --- a/src/OrchardCore/OrchardCore.Notifications.Abstractions/NotificationContext.cs +++ b/src/OrchardCore/OrchardCore.Notifications.Abstractions/NotificationContext.cs @@ -2,17 +2,35 @@ namespace OrchardCore.Notifications; +/// +/// Represents a context for notification. +/// public class NotificationContext { - public Notification Notification { get; set; } - - public INotificationMessage NotificationMessage { get; } - - public object Notify { get; } - + /// + /// Creates a new instance of . + /// + /// The notification message. + /// The notifiable object. + /// Occurs when is null, public NotificationContext(INotificationMessage notificationMessage, object notify) { NotificationMessage = notificationMessage ?? throw new ArgumentNullException(nameof(notificationMessage)); Notify = notify ?? throw new ArgumentNullException(nameof(notify)); } + + /// + /// Gets ot sets the notification. + /// + public Notification Notification { get; set; } + + /// + /// Gets or sets the notification message. + /// + public INotificationMessage NotificationMessage { get; } + + /// + /// Gets or sets the notifiable object. + /// + public object Notify { get; } }