Webiant Logo Webiant Logo
  1. No results found.

    Try your search with a different keyword or use * as a wildcard.

IWorkflowMessageService.cs

using Nop.Core.Domain.Blogs;
using Nop.Core.Domain.Catalog;
using Nop.Core.Domain.Customers;
using Nop.Core.Domain.Forums;
using Nop.Core.Domain.Messages;
using Nop.Core.Domain.News;
using Nop.Core.Domain.Orders;
using Nop.Core.Domain.Shipping;
using Nop.Core.Domain.Vendors;

namespace Nop.Services.Messages;

/// 
/// Workflow message service
/// 
public partial interface IWorkflowMessageService
{
    #region Customer workflow

    /// 
    /// Sends 'New customer' notification message to a store owner
    /// 
    /// Customer instance
    /// Message language identifier
    /// 
    /// A task that represents the asynchronous operation
    /// The task result contains the queued email identifier
    /// 
    Task> SendCustomerRegisteredStoreOwnerNotificationMessageAsync(Customer customer, int languageId);

    /// 
    /// Sends a welcome message to a customer
    /// 
    /// Customer instance
    /// Message language identifier
    /// 
    /// A task that represents the asynchronous operation
    /// The task result contains the queued email identifier
    /// 
    Task> SendCustomerWelcomeMessageAsync(Customer customer, int languageId);

    /// 
    /// Sends an email validation message to a customer
    /// 
    /// Customer instance
    /// Message language identifier
    /// 
    /// A task that represents the asynchronous operation
    /// The task result contains the queued email identifier
    /// 
    Task> SendCustomerEmailValidationMessageAsync(Customer customer, int languageId);

    /// 
    /// Sends an email re-validation message to a customer
    /// 
    /// Customer instance
    /// Message language identifier
    /// 
    /// A task that represents the asynchronous operation
    /// The task result contains the queued email identifier
    /// 
    Task> SendCustomerEmailRevalidationMessageAsync(Customer customer, int languageId);

    /// 
    /// Sends password recovery message to a customer
    /// 
    /// Customer instance
    /// Message language identifier
    /// 
    /// A task that represents the asynchronous operation
    /// The task result contains the queued email identifier
    /// 
    Task> SendCustomerPasswordRecoveryMessageAsync(Customer customer, int languageId);

    /// 
    /// Sends 'New request to delete customer' message to a store owner
    /// 
    /// Customer
    /// Message language identifier
    /// 
    /// A task that represents the asynchronous operation
    /// The task result contains the queued email identifier
    /// 
    Task> SendDeleteCustomerRequestStoreOwnerNotificationAsync(Customer customer, int languageId);

    #endregion

    #region Order workflow

    /// 
    /// Sends an order placed notification to a vendor
    /// 
    /// Order instance
    /// Vendor instance
    /// Message language identifier
    /// 
    /// A task that represents the asynchronous operation
    /// The task result contains the queued email identifier
    /// 
    Task> SendOrderPlacedVendorNotificationAsync(Order order, Vendor vendor, int languageId);

    /// 
    /// Sends an order placed notification to a store owner
    /// 
    /// Order instance
    /// Message language identifier
    /// 
    /// A task that represents the asynchronous operation
    /// The task result contains the queued email identifier
    /// 
    Task> SendOrderPlacedStoreOwnerNotificationAsync(Order order, int languageId);

    /// 
    /// Sends an order placed notification to an affiliate
    /// 
    /// Order instance
    /// Message language identifier
    /// 
    /// A task that represents the asynchronous operation
    /// The task result contains the queued email identifier
    /// 
    Task> SendOrderPlacedAffiliateNotificationAsync(Order order, int languageId);

    /// 
    /// Sends an order paid notification to a store owner
    /// 
    /// Order instance
    /// Message language identifier
    /// 
    /// A task that represents the asynchronous operation
    /// The task result contains the queued email identifier
    /// 
    Task> SendOrderPaidStoreOwnerNotificationAsync(Order order, int languageId);

    /// 
    /// Sends an order paid notification to a customer
    /// 
    /// Order instance
    /// Message language identifier
    /// Attachment file path
    /// Attachment file name. If specified, then this file name will be sent to a recipient. Otherwise, "AttachmentFilePath" name will be used.
    /// 
    /// A task that represents the asynchronous operation
    /// The task result contains the queued email identifier
    /// 
    Task> SendOrderPaidCustomerNotificationAsync(Order order, int languageId,
        string attachmentFilePath = null, string attachmentFileName = null);

    /// 
    /// Sends an order paid notification to a vendor
    /// 
    /// Order instance
    /// Vendor instance
    /// Message language identifier
    /// 
    /// A task that represents the asynchronous operation
    /// The task result contains the queued email identifier
    /// 
    Task> SendOrderPaidVendorNotificationAsync(Order order, Vendor vendor, int languageId);

    /// 
    /// Sends an order paid notification to an affiliate
    /// 
    /// Order instance
    /// Message language identifier
    /// 
    /// A task that represents the asynchronous operation
    /// The task result contains the queued email identifier
    /// 
    Task> SendOrderPaidAffiliateNotificationAsync(Order order, int languageId);

    /// 
    /// Sends an order placed notification to a customer
    /// 
    /// Order instance
    /// Message language identifier
    /// Attachment file path
    /// Attachment file name. If specified, then this file name will be sent to a recipient. Otherwise, "AttachmentFilePath" name will be used.
    /// 
    /// A task that represents the asynchronous operation
    /// The task result contains the queued email identifier
    /// 
    Task> SendOrderPlacedCustomerNotificationAsync(Order order, int languageId,
        string attachmentFilePath = null, string attachmentFileName = null);

    /// 
    /// Sends a shipment sent notification to a customer
    /// 
    /// Shipment
    /// Message language identifier
    /// 
    /// A task that represents the asynchronous operation
    /// The task result contains the queued email identifier
    /// 
    Task> SendShipmentSentCustomerNotificationAsync(Shipment shipment, int languageId);

    /// 
    /// Sends a shipment ready for pickup notification to a customer
    /// 
    /// Shipment
    /// Message language identifier
    /// 
    /// A task that represents the asynchronous operation
    /// The task result contains the queued email identifier
    /// 
    Task> SendShipmentReadyForPickupNotificationAsync(Shipment shipment, int languageId);

    /// 
    /// Sends a shipment delivered notification to a customer
    /// 
    /// Shipment
    /// Message language identifier
    /// 
    /// A task that represents the asynchronous operation
    /// The task result contains the queued email identifier
    /// 
    Task> SendShipmentDeliveredCustomerNotificationAsync(Shipment shipment, int languageId);

    /// 
    /// Sends an order processing notification to a customer
    /// 
    /// Order instance
    /// Message language identifier
    /// Attachment file path
    /// Attachment file name. If specified, then this file name will be sent to a recipient. Otherwise, "AttachmentFilePath" name will be used.
    /// 
    /// A task that represents the asynchronous operation
    /// The task result contains the queued email identifier
    /// 
    Task> SendOrderProcessingCustomerNotificationAsync(Order order, int languageId,
        string attachmentFilePath = null, string attachmentFileName = null);

    /// 
    /// Sends an order completed notification to a customer
    /// 
    /// Order instance
    /// Message language identifier
    /// Attachment file path
    /// Attachment file name. If specified, then this file name will be sent to a recipient. Otherwise, "AttachmentFilePath" name will be used.
    /// 
    /// A task that represents the asynchronous operation
    /// The task result contains the queued email identifier
    /// 
    Task> SendOrderCompletedCustomerNotificationAsync(Order order, int languageId,
        string attachmentFilePath = null, string attachmentFileName = null);

    /// 
    /// Sends an order cancelled notification to a customer
    /// 
    /// Order instance
    /// Message language identifier
    /// 
    /// A task that represents the asynchronous operation
    /// The task result contains the queued email identifier
    /// 
    Task> SendOrderCancelledCustomerNotificationAsync(Order order, int languageId);

    /// 
    /// Sends an order refunded notification to a store owner
    /// 
    /// Order instance
    /// Amount refunded
    /// Message language identifier
    /// 
    /// A task that represents the asynchronous operation
    /// The task result contains the queued email identifier
    /// 
    Task> SendOrderRefundedStoreOwnerNotificationAsync(Order order, decimal refundedAmount, int languageId);

    /// 
    /// Sends an order refunded notification to a customer
    /// 
    /// Order instance
    /// Amount refunded
    /// Message language identifier
    /// 
    /// A task that represents the asynchronous operation
    /// The task result contains the queued email identifier
    /// 
    Task> SendOrderRefundedCustomerNotificationAsync(Order order, decimal refundedAmount, int languageId);

    /// 
    /// Sends a new order note added notification to a customer
    /// 
    /// Order note
    /// Message language identifier
    /// 
    /// A task that represents the asynchronous operation
    /// The task result contains the queued email identifier
    /// 
    Task> SendNewOrderNoteAddedCustomerNotificationAsync(OrderNote orderNote, int languageId);

    /// 
    /// Sends a "Recurring payment cancelled" notification to a store owner
    /// 
    /// Recurring payment
    /// Message language identifier
    /// 
    /// A task that represents the asynchronous operation
    /// The task result contains the queued email identifier
    /// 
    Task> SendRecurringPaymentCancelledStoreOwnerNotificationAsync(RecurringPayment recurringPayment, int languageId);

    /// 
    /// Sends a "Recurring payment cancelled" notification to a customer
    /// 
    /// Recurring payment
    /// Message language identifier
    /// 
    /// A task that represents the asynchronous operation
    /// The task result contains the queued email identifier
    /// 
    Task> SendRecurringPaymentCancelledCustomerNotificationAsync(RecurringPayment recurringPayment, int languageId);

    /// 
    /// Sends a "Recurring payment failed" notification to a customer
    /// 
    /// Recurring payment
    /// Message language identifier
    /// 
    /// A task that represents the asynchronous operation
    /// The task result contains the queued email identifier
    /// 
    Task> SendRecurringPaymentFailedCustomerNotificationAsync(RecurringPayment recurringPayment, int languageId);

    #endregion

    #region Newsletter workflow

    /// 
    /// Sends a newsletter subscription activation message
    /// 
    /// Newsletter subscription
    /// 
    /// A task that represents the asynchronous operation
    /// The task result contains the queued email identifier
    /// 
    Task> SendNewsLetterSubscriptionActivationMessageAsync(NewsLetterSubscription subscription);

    /// 
    /// Sends a newsletter subscription deactivation message
    /// 
    /// Newsletter subscription
    /// 
    /// A task that represents the asynchronous operation
    /// The task result contains the queued email identifier
    /// 
    Task> SendNewsLetterSubscriptionDeactivationMessageAsync(NewsLetterSubscription subscription);

    #endregion

    #region Send a message to a friend

    /// 
    /// Sends "email a friend" message
    /// 
    /// Customer instance
    /// Message language identifier
    /// Product instance
    /// Customer's email
    /// Friend's email
    /// Personal message
    /// 
    /// A task that represents the asynchronous operation
    /// The task result contains the queued email identifier
    /// 
    Task> SendProductEmailAFriendMessageAsync(Customer customer, int languageId,
        Product product, string customerEmail, string friendsEmail, string personalMessage);

    /// 
    /// Sends wishlist "email a friend" message
    /// 
    /// Customer
    /// Message language identifier
    /// Customer's email
    /// Friend's email
    /// Personal message
    /// 
    /// A task that represents the asynchronous operation
    /// The task result contains the queued email identifier
    /// 
    Task> SendWishlistEmailAFriendMessageAsync(Customer customer, int languageId,
        string customerEmail, string friendsEmail, string personalMessage);

    #endregion

    #region Return requests

    /// 
    /// Sends 'New Return Request' message to a store owner
    /// 
    /// Return request
    /// Order item
    /// Order
    /// Message language identifier
    /// 
    /// A task that represents the asynchronous operation
    /// The task result contains the queued email identifier
    /// 
    Task> SendNewReturnRequestStoreOwnerNotificationAsync(ReturnRequest returnRequest, OrderItem orderItem, Order order, int languageId);

    /// 
    /// Sends 'New Return Request' message to a customer
    /// 
    /// Return request
    /// Order item
    /// Order
    /// 
    /// A task that represents the asynchronous operation
    /// The task result contains the queued email identifier
    /// 
    Task> SendNewReturnRequestCustomerNotificationAsync(ReturnRequest returnRequest, OrderItem orderItem, Order order);

    /// 
    /// Sends 'Return Request status changed' message to a customer
    /// 
    /// Return request
    /// Order item
    /// Order
    /// 
    /// A task that represents the asynchronous operation
    /// The task result contains the queued email identifier
    /// 
    Task> SendReturnRequestStatusChangedCustomerNotificationAsync(ReturnRequest returnRequest, OrderItem orderItem, Order order);

    #endregion

    #region Forum Notifications

    /// 
    /// Sends a forum subscription message to a customer
    /// 
    /// Customer instance
    /// Forum Topic
    /// Forum
    /// Message language identifier
    /// 
    /// A task that represents the asynchronous operation
    /// The task result contains the queued email identifier
    /// 
    Task> SendNewForumTopicMessageAsync(Customer customer, ForumTopic forumTopic, Forum forum, int languageId);

    /// 
    /// Sends a forum subscription message to a customer
    /// 
    /// Customer instance
    /// Forum post
    /// Forum Topic
    /// Forum
    /// Friendly (starts with 1) forum topic page to use for URL generation
    /// Message language identifier
    /// 
    /// A task that represents the asynchronous operation
    /// The task result contains the queued email identifier
    /// 
    Task> SendNewForumPostMessageAsync(Customer customer, ForumPost forumPost,
        ForumTopic forumTopic, Forum forum, int friendlyForumTopicPageIndex, int languageId);

    /// 
    /// Sends a private message notification
    /// 
    /// Private message
    /// Message language identifier
    /// 
    /// A task that represents the asynchronous operation
    /// The task result contains the queued email identifier
    /// 
    Task> SendPrivateMessageNotificationAsync(PrivateMessage privateMessage, int languageId);

    #endregion

    #region Misc

    /// 
    /// Sends 'New vendor account submitted' message to a store owner
    /// 
    /// Customer
    /// Vendor
    /// Message language identifier
    /// 
    /// A task that represents the asynchronous operation
    /// The task result contains the queued email identifier
    /// 
    Task> SendNewVendorAccountApplyStoreOwnerNotificationAsync(Customer customer, Vendor vendor, int languageId);

    /// 
    /// Sends 'Vendor information change' message to a store owner
    /// 
    /// Vendor
    /// Message language identifier
    /// 
    /// A task that represents the asynchronous operation
    /// The task result contains the queued email identifier
    /// 
    Task> SendVendorInformationChangeStoreOwnerNotificationAsync(Vendor vendor, int languageId);

    /// 
    /// Sends a product review notification message to a store owner
    /// 
    /// Product review
    /// Message language identifier
    /// 
    /// A task that represents the asynchronous operation
    /// The task result contains the queued email identifier
    /// 
    Task> SendProductReviewStoreOwnerNotificationMessageAsync(ProductReview productReview, int languageId);

    /// 
    /// Sends a product review reply notification message to a customer
    /// 
    /// Product review
    /// Message language identifier
    /// 
    /// A task that represents the asynchronous operation
    /// The task result contains the queued email identifier
    /// 
    Task> SendProductReviewReplyCustomerNotificationMessageAsync(ProductReview productReview, int languageId);

    /// 
    /// Sends a gift card notification
    /// 
    /// Gift card
    /// Message language identifier
    /// 
    /// A task that represents the asynchronous operation
    /// The task result contains the queued email identifier
    /// 
    Task> SendGiftCardNotificationAsync(GiftCard giftCard, int languageId);

    /// 
    /// Sends a "quantity below" notification to a store owner
    /// 
    /// Product
    /// Message language identifier
    /// 
    /// A task that represents the asynchronous operation
    /// The task result contains the queued email identifier
    /// 
    Task> SendQuantityBelowStoreOwnerNotificationAsync(Product product, int languageId);

    /// 
    /// Sends a "quantity below" notification to a store owner
    /// 
    /// Attribute combination
    /// Message language identifier
    /// 
    /// A task that represents the asynchronous operation
    /// The task result contains the queued email identifier
    /// 
    Task> SendQuantityBelowStoreOwnerNotificationAsync(ProductAttributeCombination combination, int languageId);

    /// 
    /// Sends a "new VAT submitted" notification to a store owner
    /// 
    /// Customer
    /// Received VAT name
    /// Received VAT address
    /// Message language identifier
    /// 
    /// A task that represents the asynchronous operation
    /// The task result contains the queued email identifier
    /// 
    Task> SendNewVatSubmittedStoreOwnerNotificationAsync(Customer customer, string vatName, string vatAddress, int languageId);

    /// 
    /// Sends a blog comment notification message to a store owner
    /// 
    /// Blog comment
    /// Message language identifier
    /// 
    /// A task that represents the asynchronous operation
    /// The task result contains the queued email identifier
    /// 
    Task> SendBlogCommentStoreOwnerNotificationMessageAsync(BlogComment blogComment, int languageId);

    /// 
    /// Sends a news comment notification message to a store owner
    /// 
    /// News comment
    /// Message language identifier
    /// 
    /// A task that represents the asynchronous operation
    /// The task result contains the queued email identifier
    /// 
    Task> SendNewsCommentStoreOwnerNotificationMessageAsync(NewsComment newsComment, int languageId);

    /// 
    /// Sends a 'Back in stock' notification message to a customer
    /// 
    /// Subscription
    /// Message language identifier
    /// 
    /// A task that represents the asynchronous operation
    /// The task result contains the queued email identifier
    /// 
    Task> SendBackInStockNotificationAsync(BackInStockSubscription subscription, int languageId);

    /// 
    /// Sends "contact us" message
    /// 
    /// Message language identifier
    /// Sender email
    /// Sender name
    /// Email subject. Pass null if you want a message template subject to be used.
    /// Email body
    /// 
    /// A task that represents the asynchronous operation
    /// The task result contains the queued email identifier
    /// 
    Task> SendContactUsMessageAsync(int languageId, string senderEmail, string senderName, string subject, string body);

    /// 
    /// Sends "contact vendor" message
    /// 
    /// Vendor
    /// Message language identifier
    /// Sender email
    /// Sender name
    /// Email subject. Pass null if you want a message template subject to be used.
    /// Email body
    /// 
    /// A task that represents the asynchronous operation
    /// The task result contains the queued email identifier
    /// 
    Task> SendContactVendorMessageAsync(Vendor vendor, int languageId, string senderEmail, string senderName, string subject, string body);

    /// 
    /// Sends a test email
    /// 
    /// Message template identifier
    /// Send to email
    /// Tokens
    /// Message language identifier
    /// 
    /// A task that represents the asynchronous operation
    /// The task result contains the queued email identifier
    /// 
    Task SendTestEmailAsync(int messageTemplateId, string sendToEmail, List tokens, int languageId);

    #endregion

    #region Common

    /// 
    /// Send notification
    /// 
    /// Message template
    /// Email account
    /// Language identifier
    /// Tokens
    /// Recipient email address
    /// Recipient name
    /// Attachment file path
    /// Attachment file name
    /// "Reply to" email
    /// "Reply to" name
    /// Sender email. If specified, then it overrides passed "emailAccount" details
    /// Sender name. If specified, then it overrides passed "emailAccount" details
    /// Subject. If specified, then it overrides subject of a message template
    /// 
    /// A task that represents the asynchronous operation
    /// The task result contains the queued email identifier
    /// 
    Task SendNotificationAsync(MessageTemplate messageTemplate,
        EmailAccount emailAccount, int languageId, IList tokens,
        string toEmailAddress, string toName,
        string attachmentFilePath = null, string attachmentFileName = null,
        string replyToEmailAddress = null, string replyToName = null,
        string fromEmail = null, string fromName = null, string subject = null);

    #endregion
}