How to: Get Events for Users

SharePoint 2010

Last modified: March 18, 2010

Applies to: SharePoint Server 2010

The ActivityManager object enables you to retrieve two different kinds of activity events: events published by the current user, and events published by other users that the current user wants to see. User preferences for certain types of activity events are stored in ActivityPreference objects.

The ActivityManager maintains a list of ActivityPreference objects (in its ActivityPreferences property, which is an ActivityPreferencesCollection). You can set and get the activity preferences for a user by using the GetActivityPreferencesPerType() method and the SetActivityPreferencesPerType method of the ActivityPreferencesCollection object. This topic assumes that you have added the following references to your Microsoft Visual Studio 2010 project.

  • Microsoft.SharePoint

  • Microsoft.Office.Server

  • Microsoft.Office.Server.UserProfiles

  • System.Web

  • Use the overloaded GetActivitiesByMe() method to get events that the current user has published.

  • Use the overloaded GetActivitiesForMe() method to get events published by other users that the current user wants to see.

  • Use the overloaded GetActivitiesByUser method of the ActivityManager object to get events published by specified users.

The following code sample demonstrates how to set preferences for the current user, and then get activities by and for the current user. Note that you need to access the LinksList property of the ActivityEvent objects before accessing their other properties.

//Get the desired site context.
string currentSite = "site url";
using (SPSite aSite = new SPSite(currentSite))
SPServiceContext currentContext = SPServiceContext.GetContext(aSite);
//Get the UserProfileManager from SPServiceContext.
UserProfileManager userProfMan = new UserProfileManager(currentContext);
//Get the current user.
string userName = Environment.UserDomainName + "\\" + Environment.UserName;
UserProfile currentUser = userProfMan.GetUserProfile(userName);
//Get the ActivityManager from the user and context.
ActivityManager activityMan = new ActivityManager(currentUser, currentContext);
//Create an instance of a list of ActivityPreferencePerType objects.
List<ActivityPreferencePerType> activityPrefsPerType = new List<ActivityPreferencePerType>(activityMan.ActivityTypes.Count);
//Get each ActivityType stored in ActivityManager, and for testing purposes, set each ActivityType as
//a "true" ActivityPreference.
foreach (ActivityType activityType in activityMan.ActivityTypes)
ActivityPreferencePerType newPref = new ActivityPreferencePerType();
newPref.ActivityType = activityType;
newPref.IsSet = true;
Console.WriteLine(activityType.ActivityTypeName + " " + activityType.ActivityTypeId);
//Set activity preferences for the user.
//Get all activity events for the user. You can also use GetActivitiesByUser and 
// pass currentUser as an argument.
ActivityEventsCollection activityEventsByMeCollection = activityMan.GetActivitiesByMe();
ActivityEventsCollection activityEventsForMeCollection = activityMan.GetActivitiesForMe();
//Iterate through one of the collections to verify.
foreach (ActivityEvent activityEvent in activityEventsForMeCollection)
//Access the LinkList property in order to populate the ActivityEvent
//object properties
List<Link> temp = activity.LinksList;