using Nop.Core; using Nop.Core.Domain.Customers; using Nop.Core.Domain.Forums; namespace Nop.Services.Forums; /// /// Forum service interface /// public partial interface IForumService { /// /// Deletes a forum group /// /// Forum group /// A task that represents the asynchronous operation Task DeleteForumGroupAsync(ForumGroup forumGroup); /// /// Gets a forum group /// /// The forum group identifier /// /// A task that represents the asynchronous operation /// The task result contains the forum group /// Task GetForumGroupByIdAsync(int forumGroupId); /// /// Gets all forum groups /// /// /// A task that represents the asynchronous operation /// The task result contains the forum groups /// Task> GetAllForumGroupsAsync(); /// /// Inserts a forum group /// /// Forum group /// A task that represents the asynchronous operation Task InsertForumGroupAsync(ForumGroup forumGroup); /// /// Updates the forum group /// /// Forum group /// A task that represents the asynchronous operation Task UpdateForumGroupAsync(ForumGroup forumGroup); /// /// Deletes a forum /// /// Forum /// A task that represents the asynchronous operation Task DeleteForumAsync(Forum forum); /// /// Gets a forum /// /// The forum identifier /// /// A task that represents the asynchronous operation /// The task result contains the forum /// Task GetForumByIdAsync(int forumId); /// /// Gets forums by group identifier /// /// The forum group identifier /// /// A task that represents the asynchronous operation /// The task result contains the forums /// Task> GetAllForumsByGroupIdAsync(int forumGroupId); /// /// Inserts a forum /// /// Forum /// A task that represents the asynchronous operation Task InsertForumAsync(Forum forum); /// /// Updates the forum /// /// Forum /// A task that represents the asynchronous operation Task UpdateForumAsync(Forum forum); /// /// Deletes a forum topic /// /// Forum topic /// A task that represents the asynchronous operation Task DeleteTopicAsync(ForumTopic forumTopic); /// /// Gets a forum topic /// /// The forum topic identifier /// /// A task that represents the asynchronous operation /// The task result contains the forum Topic /// Task GetTopicByIdAsync(int forumTopicId); /// /// Gets all forum topics /// /// The forum identifier /// The customer identifier /// Keywords /// Search type /// Limit by the last number days; 0 to load all topics /// Page index /// Page size /// /// A task that represents the asynchronous operation /// The task result contains the forum Topics /// Task> GetAllTopicsAsync(int forumId = 0, int customerId = 0, string keywords = "", ForumSearchType searchType = ForumSearchType.All, int limitDays = 0, int pageIndex = 0, int pageSize = int.MaxValue); /// /// Gets active forum topics /// /// The forum identifier /// Page index /// Page size /// /// A task that represents the asynchronous operation /// The task result contains the forum Topics /// Task> GetActiveTopicsAsync(int forumId = 0, int pageIndex = 0, int pageSize = int.MaxValue); /// /// Inserts a forum topic /// /// Forum topic /// A value indicating whether to send notifications to subscribed customers /// A task that represents the asynchronous operation Task InsertTopicAsync(ForumTopic forumTopic, bool sendNotifications); /// /// Updates the forum topic /// /// Forum topic /// A task that represents the asynchronous operation Task UpdateTopicAsync(ForumTopic forumTopic); /// /// Moves the forum topic /// /// The forum topic identifier /// New forum identifier /// /// A task that represents the asynchronous operation /// The task result contains the moved forum topic /// Task MoveTopicAsync(int forumTopicId, int newForumId); /// /// Deletes a forum post /// /// Forum post /// A task that represents the asynchronous operation Task DeletePostAsync(ForumPost forumPost); /// /// Gets a forum post /// /// The forum post identifier /// /// A task that represents the asynchronous operation /// The task result contains the forum Post /// Task GetPostByIdAsync(int forumPostId); /// /// Gets all forum posts /// /// The forum topic identifier /// The customer identifier /// Keywords /// Page index /// Page size /// /// A task that represents the asynchronous operation /// The task result contains the posts /// Task> GetAllPostsAsync(int forumTopicId = 0, int customerId = 0, string keywords = "", int pageIndex = 0, int pageSize = int.MaxValue); /// /// Gets all forum posts /// /// The forum topic identifier /// The customer identifier /// Keywords /// Sort order /// Page index /// Page size /// /// A task that represents the asynchronous operation /// The task result contains the forum Posts /// Task> GetAllPostsAsync(int forumTopicId = 0, int customerId = 0, string keywords = "", bool ascSort = false, int pageIndex = 0, int pageSize = int.MaxValue); /// /// Inserts a forum post /// /// The forum post /// A value indicating whether to send notifications to subscribed customers /// A task that represents the asynchronous operation Task InsertPostAsync(ForumPost forumPost, bool sendNotifications); /// /// Updates the forum post /// /// Forum post /// A task that represents the asynchronous operation Task UpdatePostAsync(ForumPost forumPost); /// /// Deletes a private message /// /// Private message /// A task that represents the asynchronous operation Task DeletePrivateMessageAsync(PrivateMessage privateMessage); /// /// Gets a private message /// /// The private message identifier /// /// A task that represents the asynchronous operation /// The task result contains the private message /// Task GetPrivateMessageByIdAsync(int privateMessageId); /// /// Gets private messages /// /// The store identifier; pass 0 to load all messages /// The customer identifier who sent the message /// The customer identifier who should receive the message /// A value indicating whether loaded messages are read. false - to load not read messages only, 1 to load read messages only, null to load all messages /// A value indicating whether loaded messages are deleted by author. false - messages are not deleted by author, null to load all messages /// A value indicating whether loaded messages are deleted by recipient. false - messages are not deleted by recipient, null to load all messages /// Keywords /// Page index /// Page size /// /// A task that represents the asynchronous operation /// The task result contains the private messages /// Task> GetAllPrivateMessagesAsync(int storeId, int fromCustomerId, int toCustomerId, bool? isRead, bool? isDeletedByAuthor, bool? isDeletedByRecipient, string keywords, int pageIndex = 0, int pageSize = int.MaxValue); /// /// Inserts a private message /// /// Private message /// A task that represents the asynchronous operation Task InsertPrivateMessageAsync(PrivateMessage privateMessage); /// /// Updates the private message /// /// Private message /// A task that represents the asynchronous operation Task UpdatePrivateMessageAsync(PrivateMessage privateMessage); /// /// Deletes a forum subscription /// /// Forum subscription /// A task that represents the asynchronous operation Task DeleteSubscriptionAsync(ForumSubscription forumSubscription); /// /// Gets a forum subscription /// /// The forum subscription identifier /// /// A task that represents the asynchronous operation /// The task result contains the forum subscription /// Task GetSubscriptionByIdAsync(int forumSubscriptionId); /// /// Gets forum subscriptions /// /// The customer identifier /// The forum identifier /// The topic identifier /// Page index /// Page size /// /// A task that represents the asynchronous operation /// The task result contains the forum subscriptions /// Task> GetAllSubscriptionsAsync(int customerId = 0, int forumId = 0, int topicId = 0, int pageIndex = 0, int pageSize = int.MaxValue); /// /// Inserts a forum subscription /// /// Forum subscription /// A task that represents the asynchronous operation Task InsertSubscriptionAsync(ForumSubscription forumSubscription); /// /// Check whether customer is allowed to create new topics /// /// Customer /// Forum /// /// A task that represents the asynchronous operation /// The task result contains true if allowed, otherwise false /// Task IsCustomerAllowedToCreateTopicAsync(Customer customer, Forum forum); /// /// Check whether customer is allowed to edit topic /// /// Customer /// Topic /// /// A task that represents the asynchronous operation /// The task result contains true if allowed, otherwise false /// Task IsCustomerAllowedToEditTopicAsync(Customer customer, ForumTopic topic); /// /// Check whether customer is allowed to move topic /// /// Customer /// Topic /// /// A task that represents the asynchronous operation /// The task result contains true if allowed, otherwise false /// Task IsCustomerAllowedToMoveTopicAsync(Customer customer, ForumTopic topic); /// /// Check whether customer is allowed to delete topic /// /// Customer /// Topic /// /// A task that represents the asynchronous operation /// The task result contains true if allowed, otherwise false /// Task IsCustomerAllowedToDeleteTopicAsync(Customer customer, ForumTopic topic); /// /// Check whether customer is allowed to create new post /// /// Customer /// Topic /// /// A task that represents the asynchronous operation /// The task result contains true if allowed, otherwise false /// Task IsCustomerAllowedToCreatePostAsync(Customer customer, ForumTopic topic); /// /// Check whether customer is allowed to edit post /// /// Customer /// Topic /// /// A task that represents the asynchronous operation /// The task result contains true if allowed, otherwise false /// Task IsCustomerAllowedToEditPostAsync(Customer customer, ForumPost post); /// /// Check whether customer is allowed to delete post /// /// Customer /// Topic /// /// A task that represents the asynchronous operation /// The task result contains true if allowed, otherwise false /// Task IsCustomerAllowedToDeletePostAsync(Customer customer, ForumPost post); /// /// Check whether customer is allowed to set topic priority /// /// Customer /// /// A task that represents the asynchronous operation /// The task result contains true if allowed, otherwise false /// Task IsCustomerAllowedToSetTopicPriorityAsync(Customer customer); /// /// Check whether customer is allowed to watch topics /// /// Customer /// /// A task that represents the asynchronous operation /// The task result contains true if allowed, otherwise false /// Task IsCustomerAllowedToSubscribeAsync(Customer customer); /// /// Calculates topic page index by post identifier /// /// Topic identifier /// Page size /// Post identifier /// /// A task that represents the asynchronous operation /// The task result contains the page index /// Task CalculateTopicPageIndexAsync(int forumTopicId, int pageSize, int postId); /// /// Get a post vote /// /// Post identifier /// Customer /// /// A task that represents the asynchronous operation /// The task result contains the post vote /// Task GetPostVoteAsync(int postId, Customer customer); /// /// Get post vote made since the parameter date /// /// Customer /// Date /// /// A task that represents the asynchronous operation /// The task result contains the post votes count /// Task GetNumberOfPostVotesAsync(Customer customer, DateTime createdFromUtc); /// /// Insert a post vote /// /// Post vote /// A task that represents the asynchronous operation Task InsertPostVoteAsync(ForumPostVote postVote); /// /// Delete a post vote /// /// Post vote /// A task that represents the asynchronous operation Task DeletePostVoteAsync(ForumPostVote postVote); /// /// Formats the forum post text /// /// Forum post /// Formatted text string FormatPostText(ForumPost forumPost); /// /// Strips the topic subject /// /// Forum topic /// Formatted subject string StripTopicSubject(ForumTopic forumTopic); /// /// Formats the forum signature text /// /// Text /// Formatted text string FormatForumSignatureText(string text); /// /// Formats the private message text /// /// Private message /// Formatted text string FormatPrivateMessageText(PrivateMessage pm); /// /// Get first post /// /// Forum topic /// /// A task that represents the asynchronous operation /// The task result contains the forum post /// Task GetFirstPostAsync(ForumTopic forumTopic); /// /// Gets ForumGroup SE (search engine) name /// /// ForumGroup /// /// A task that represents the asynchronous operation /// The task result contains the forumGroup SE (search engine) name /// Task GetForumGroupSeNameAsync(ForumGroup forumGroup); /// /// Gets Forum SE (search engine) name /// /// Forum /// /// A task that represents the asynchronous operation /// The task result contains the forum SE (search engine) name /// Task GetForumSeNameAsync(Forum forum); /// /// Gets ForumTopic SE (search engine) name /// /// ForumTopic /// /// A task that represents the asynchronous operation /// The task result contains the forumTopic SE (search engine) name /// Task GetTopicSeNameAsync(ForumTopic forumTopic); }