using System;
using SiberTek.Xenta.Data.Entities;
using SiberTek.Xenta.Data.Entities.Collections;
using SiberTek.Xenta.Enums;
using System.Collections.Generic;
namespace SiberTek.Xenta.Data.Providers
{
/// <summary>
/// Defines forum topic data provider methods
/// </summary>
public interface IForumTopicDataProvider : IDataProvider
{
#region Methods
#region C
bool InsertForumTopic(int forumID, int authorID, string title, string description, ForumTopicType type, bool isActive, DateTime createdOn, DateTime updatedOn, out int topicID);
bool InsertForumTopicPublicationMapping(int topicID, int publicationID);
bool InsertForumTopicRoleMapping(int topicID, int roleID);
#endregion
#region R
ForumTopicData GetForumTopic(int topicID);
ForumTopicData GetForumTopicByPublicationID(int publicationID);
ForumTopicDataCollection GetAllForumTopics(string searchTerm, int? forumID, int? authorID, ForumTopicType? type, DateTime? createdOnStart, DateTime? createdOnEnd, bool showHidden, ForumTopicOrderBy orderBy, int startIndex, int count, out int totalCount);
bool ForumTopicRoleMappingExists(int topicID, int roleID);
#endregion
#region U
bool UpdateForumTopic(int topicID, int forumID, int authorID, string title, string description, ForumTopicType type, bool isActive, DateTime createdOn, DateTime updatedOn);
#endregion
#region D
bool DeleteForumTopic(int topicID);
bool DeleteForumTopicPublicationMapping(int topicID, int? publicationID);
bool DeleteForumTopicRoleMapping(int topicID, int roleID);
#endregion
#endregion
}
}