Powershell to get number of followers for a pericular user :
Add-PsSnapin microsoft*
$site =
Get-SPSite http://yoursiteurl/
$servContext =
Get-SPServiceContext($site)
$profileMgr =
New-Object Microsoft.Office.Server.UserProfiles.UserProfileManager($servContext)
$userpro =
$profileMgr.GetUserProfile("Domain\username")
$followMgr =
New-Object Microsoft.Office.Server.Social.SPSocialFollowingManager($userpro,$servContext)
$followers =
$followMgr.GetFollowers()
$followerd =
$followMgr.GetFollowed("Users")
$followerdSites =
$followMgr.GetFollowed("Sites")
c# code :
for any perticular user
public List<int> GetFollowersAndFollowedByName(string name)
{
List<int> fAndf = new List<int>();
var profilemgr = new Microsoft.Office.Server.UserProfiles.UserProfileManager();
UserProfile userprofile = profilemgr.GetUserProfile("Domain\\" + name);
var followMgr = new SPSocialFollowingManager(userprofile);
var followers = followMgr.GetFollowers();
var typ = Microsoft.Office.Server.Social.SPSocialActorTypes.Users;
var followed = followMgr.GetFollowed(typ);
int FollowersCount = followers.Count();
int FollowedCount = followed.Count();
fAndf.Add(FollowersCount);
fAndf.Add(FollowedCount);
return fAndf;
}
for current User:
public List<int> GetFollowersAndFollowed()
{
var instance = new PeopleManager();
List<PersonProperties> vc = instance.GetFollowersFor("domain\\name");
List<PersonProperties> vc1 = instance.GetPeopleFollowedBy("domain\\Name");
List<int> fAndf = new List<int>();
fAndf.Add(vc.Count);
fAndf.Add(vc1.Count);
return fAndf;
}
For AD group :
public List<UserInfo> GetFollowersAndFollowedDetailsForAGroup(string GroupName)
{
var memberList = GetMembers(GroupName);
List<UserInfo> fAndf = new List<UserInfo>();
foreach (var name in memberList)
{
var profilemgr = new Microsoft.Office.Server.UserProfiles.UserProfileManager();
try
{
UserProfile userprofile = profilemgr.GetUserProfile("domain\\" + name);
var followMgr = new SPSocialFollowingManager(userprofile);
var followers = followMgr.GetFollowers();
var typ = Microsoft.Office.Server.Social.SPSocialActorTypes.Users;
var followed = followMgr.GetFollowed(typ);
int FollowersCount = followers.Count();
int FollowedCount = followed.Count();
var UserItem = new UserInfo();
UserItem.Followers = FollowersCount;
UserItem.Following = FollowedCount;
UserItem.UserName = name;
fAndf.Add(UserItem);
}
catch (Exception ex)
{
var message = ex.Message;
}
}
return fAndf;
}
Get Users in A Group :
public static IEnumerable<string> GetMembers(String GroupName)
{
using (var client = new PSXGroup())
{
var memberList = GetUsersInGroup(client, GroupName).Distinct();
return memberList.OrderBy(m => m);
}
}
private static IEnumerable<string> GetUsersInGroup(PSXGroup client, string groupname)
{
var loginNames = new List<string>();
try
{
var data = client.getMemberInfoByGroupIDorDN(groupname, string.Empty, FieldNames.GroupType);
var members = data.Tables["Members"];
var groups =
members.AsEnumerable()
.Where(m => m.Field<string>(FieldNames.GroupType) != string.Empty)
.Select(m => m.Field<string>(FieldNames.AdminAccountName)).ToList();
//Gets users from nested AD groups
if (groups.Any())
{
foreach (var gname in groups)
{
var results = GetUsersInGroup(client, gname);
loginNames.AddRange(results);
}
}
// when group type is empty you have a admin account
var users =
members.AsEnumerable()
.Where(u => u.Field<string>(FieldNames.GroupType) == string.Empty)
.Select(u => u.Field<string>(FieldNames.AdminAccountName))
.ToList();
loginNames.AddRange(users);
}
catch (Exception e)
{
// HandleException(e);
}
return loginNames;
}
Comments
Post a Comment