# Forum subscriptions

The subscriptions allow you to subscribe a user to either a forum or a thread. When a new thread (respectively new post) is submitted, the user will get a notification. The Forums API exposes both methods for subscribing and unsubscribing users. For more information, see the examples bellow.

## Subscribing users

To subscribe the user you must call the static `SubscribeUser` method of the `ForumsManager` class. It takes the following arguments:

* `user`\
  Represents an instance of the user that you want to subscribe.
* `subscriptionType`\
  Represents the type of the subscription. The argument is of type `Telerik.Sitefinity.Forums.SubscriptionType`. The enumeration has the following values:
  * `Forum`\
    Specifies that the subscription is made for a forum.
  * `Thread`\
    Specifies that the subscription is made for a thread.
* `itemId`\
  The ID of the forum or the thread that you want to subscribe the user for.

Here is a code example:

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

namespace SitefinityWebApp
{
    public class ForumSubscriptions_SubscribeUserToThread
    {
        public static void SubscribeUserToThread(Guid threadId, Guid userId)
        {
            UserManager userManager = UserManager.GetManager();

            User user = userManager.GetUser(userId);

            ForumsManager.SubscribeUser(user, SubscriptionType.Thread, threadId);
        }

        public static void SubscribeUserToForum(Guid forumId, Guid userId)
        {
            UserManager userManager = UserManager.GetManager();

            User user = userManager.GetUser(userId);

            ForumsManager.SubscribeUser(user, SubscriptionType.Forum, forumId);
        }
    }
}
```

## Unsubscribing users

To unsubscribe the user you must call the static `UnsubscribeUser` method of the `ForumsManager` class. It takes the following arguments:

* `user`\
  Represents an instance of the user that you want to unsubscribe.
* `subscriptionType`\
  Represents the type of the subscription. The argument is of type `Telerik.Sitefinity.Forums.SubscriptionType`. The enumeration has the following values:
  * `Forum`\
    Specifies that the subscription is made for a forum.
  * `Thread`\
    Specifies that the subscription is made for a thread.
* `itemId`\
  The ID of the forum or the thread that you want to unsubscribe the user for.

Here is a code example:

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

namespace SitefinityWebApp
{
    public class ForumSubscriptions_UnsubscribeUserFromThread
    {
        public static void UnsubscribeUserFromThread(Guid threadId, Guid userId)

        {
            UserManager userManager = UserManager.GetManager();
            
            User user = userManager.GetUser(userId);
            
            ForumsManager.UnsubscribeUser(user, SubscriptionType.Thread, threadId);
        }
        public static void UnsubscribeUserFromForum(Guid forumId, Guid userId)

        {
            UserManager userManager = UserManager.GetManager();

            User user = userManager.GetUser(userId);

            ForumsManager.UnsubscribeUser(user, SubscriptionType.Forum, forumId);
        }
    }
}
```
