Query forum threads

This topic contains the following:

  • Querying a single thread
  • Querying threads from a forum
  • Querying all threads

Querying a single thread

To query a single thread, you must perform the following:

  1. Get an instance of the manager.
    Get an instance of the ForumsManager object.
  2. Get the specified thread.
    To get the specified thread, you can either call the GetThread method of the manager and pass the ID of the thread as an argument, or call the GetThreads method of the manager and filter the collection by the ID or the name of the thread.

Here is a code example of using the GetThread method:

C#
using System;
using Telerik.Sitefinity.Forums;
using Telerik.Sitefinity.Forums.Model;

namespace SitefinityWebApp
{
    public class QueryForumThreads_GetThread
    {
        public static ForumThread GetThread(Guid threadId)
        {
            ForumsManager forumsManager = ForumsManager.GetManager();

            ForumThread thread = forumsManager.GetThread(threadId);

            return thread;
        }
    }
}

NOTE: If the thread does not exist, the method throws an exception of type Telerik.Sitefinity.SitefinityExceptions.ItemNotFoundException.

Here is a code example of using the GetThreads method:

C#
using System;
using System.Linq;
using Telerik.Sitefinity.Forums;
using Telerik.Sitefinity.Forums.Model;

namespace SitefinityWebApp
{
    public class QueryForumThreads_GetThreadAlternative
    {
        public static ForumThread GetThreadAlternative(Guid threadId)
        {
            ForumsManager forumsManager = ForumsManager.GetManager();

            ForumThread thread = forumsManager.GetThreads().Where(g => g.Id == threadId).SingleOrDefault();

            return thread;
        }
    }
}

Querying all threads from a forum

To query all threads from a forum, you must perform the following:

  1. Get an instance of the manager.
    Get an instance of the ForumsManager object.
  2. Get the threads.
    To get the threads, you must call the GetThreads method of the manager and filter the query by the ID of the forum.

Here is a code example:

C#
using System;
using System.Collections.Generic;
using System.Linq;
using Telerik.Sitefinity.Forums;
using Telerik.Sitefinity.Forums.Model;

namespace SitefinityWebApp
{
    public class QueryForumThreads_GetThreadsByForum
    {
        public static List<ForumThread> GetThreadsByForum(Guid forumId)
        {
            ForumsManager forumsManager = ForumsManager.GetManager();

            List<ForumThread> threads = forumsManager.GetThreads().Where(t => t.Forum != null && t.Forum.Id == forumId).ToList();

            return threads;
        }
    }
}

NOTE: Because it is possible to have a thread without a forum, you must make a check whether the Forum property is null.

Querying all threads

To query all threads, you must perform the following:

  1. Get an instance of the manager.
    Get an instance of the ForumsManager object.
  2. Get the threads.
    To get the threads, you must call the GetThreads method of the manager.

Here is a code example:

C#
using System.Collections.Generic;
using System.Linq;
using Telerik.Sitefinity.Forums;
using Telerik.Sitefinity.Forums.Model;

namespace SitefinityWebApp
{
    public class QueryForumThreads_GetThreads
    {
        public static List<ForumThread> GetThreads()
        {
            ForumsManager forumsManager = ForumsManager.GetManager();

            List<ForumThread> threads = forumsManager.GetThreads().ToList();

            return threads;
        }
    }
}
Want to learn more?
Enhance your Sitefinity skills by enrolling in free training sessions. Become Sitefinity certified through Progress Education Community to strengthen your professional credentials.