Procédure : obtenir des événements pour des utilisateurs
Dernière modification : jeudi 18 mars 2010
S’applique à : SharePoint Server 2010
L’objet ActivityManager vous permet d’extraire deux genres d’événements d’activité : ceux publiés par l’utilisateur actuel et ceux publiés par d’autres utilisateurs que l’utilisateur actuel souhaite voir. Les préférences utilisateur pour certains types d’événements d’activité sont stockées dans des objets ActivityPreference.
Objets ActivityPreference
ActivityManager gère une liste d’objets ActivityPreference (dans sa propriété ActivityPreferences, qui est un objet ActivityPreferencesCollection). Vous pouvez définir et obtenir les préférences d’activité pour un utilisateur à l’aide des méthodes GetActivityPreferencesPerType() et SetActivityPreferencesPerType de l’objet ActivityPreferencesCollection. Cette rubrique suppose que vous avez ajouté les références suivantes à votre projet Microsoft Visual Studio 2010.
Microsoft.SharePoint
Microsoft.Office.Server
Microsoft.Office.Server.UserProfiles
System.Web
Obtention d’événements pour des utilisateurs
Utilisez la méthode surchargée GetActivitiesByMe() pour obtenir les événements publiés par l’utilisateur actuel.
Utilisez la méthode surchargée GetActivitiesForMe() pour obtenir les événements publiés par d’autres utilisateurs et que l’utilisateur actuel souhaite voir.
Utilisez la méthode surchargée GetActivitiesByUser de l’objet ActivityManager pour obtenir les événements publiés par des utilisateurs spécifiés.
L’exemple de code suivant montre comment définir les préférences de l’utilisateur actuel, puis obtenir des activités par et pour l’utilisateur actuel. Notez que vous devez accéder à la propriété LinksList des objetsActivityEvent avant d’accéder à leurs autres propriétés.
//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;
activityPrefsPerType.Add(newPref);
Console.WriteLine(activityType.ActivityTypeName + " " + activityType.ActivityTypeId);
}
//Set activity preferences for the user.
activityMan.ActivityPreferences.SetActivityPreferencesPerType(activityPrefsPerType);
//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;
Console.WriteLine(activityEvent.Publisher.Name);
}
Console.ReadKey(true);
}
Voir aussi
Référence
Microsoft.Office.Server.ActivityFeed
Concepts
Procédure : créer et insérer des événements sur un échange de News d’utilisateur
Procédure : créer un nouveau type d’activité