Query forums

This topic contains the following:

  • Querying a single forum
  • Querying forums from a group
  • Querying all forum

Querying a single forum

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

  1. Get an instance of the manager.
    Get an instance of the ForumsManagerobject.
  2. Get the specified forum.
    To get the specified forum, you can either call the GetForum method of the manager and pass the ID of the forum as an argument, or call the GetForums method of the manager and filter the collection by the ID or the name of the forum.

Here is a code example of using the GetForum method:

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

namespace SitefinityWebApp
{
    public class QueryForums_GetForum
    {
        public static Forum GetForum(Guid forumId)
        {
            ForumsManager forumsManager = ForumsManager.GetManager();

            Forum forum = forumsManager.GetForum(forumId);

            return forum;
        }
    }
}

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

Here is a code example of using the GetForums method:

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

namespace SitefinityWebApp
{
    public class QueryForums_GetForumAlternative
    {
        public static Forum GetForumAlternative(Guid forumId)
        {
            ForumsManager forumsManager = ForumsManager.GetManager();

            Forum forum = forumsManager.GetForums().Where(g => g.Id == forumId).SingleOrDefault();

            return forum;
        }
    }
}

Querying all forums from a group

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

  1. Get an instance of the manager.
    Get an instance of the ForumsManagerobject.
  2. Get the forums.
    To get the forums, you must call the GetForums method of the manager and filter the query by the ID of the group.

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 QueryForums_GetForumsByGroup
    {
        public static List<Forum> GetForumsByGroup(Guid groupId)
        {
            ForumsManager forumsManager = ForumsManager.GetManager();

            List<Forum> forums = forumsManager.GetForums().Where(f => f.Group != null && f.Group.Id == groupId).ToList();

            return forums;
        }
    }
}

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

Querying all forums

To query all forums, you must perform the following:

  1. Get an instance of the manager.
    Get an instance of the ForumsManagerobject.
  2. Get the forums.
    To get the forums, you must call the GetForums 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 QueryForums_GetForums
    {
        public static List<Forum> GetForums()
        {
            ForumsManager forumsManager = ForumsManager.GetManager();

            List<Forum> forums = forumsManager.GetForums().ToList();

            return forums;
        }
    }
}
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.