Dotnetnuke 以编程方式获取DNN中的所有好友

Dotnetnuke 以编程方式获取DNN中的所有好友,dotnetnuke,dotnetnuke-8,Dotnetnuke,Dotnetnuke 8,我正在尝试检索特定用户的所有朋友。从DNNRelationshipController中,我只能找到获取两个用户之间关系的方法。有可能得到一个用户的所有朋友吗 '获取两个用户之间的关系: DotNetNuke.Entities.Users.Social.RelationshipController.Instance.GetFriendRelationship(Me.UserInfo) 我有这个密码。我获取当前用户,然后获取所有关系用户ID,这些关系用户ID是朋友(与追随者)并且是“接受的”。使

我正在尝试检索特定用户的所有
朋友。从DNN
RelationshipController
中,我只能找到获取两个用户之间关系的方法。有可能得到一个用户的所有朋友吗

'获取两个用户之间的关系:

DotNetNuke.Entities.Users.Social.RelationshipController.Instance.GetFriendRelationship(Me.UserInfo)

我有这个密码。我获取当前用户,然后获取所有关系用户ID,这些关系用户ID是朋友(与追随者)并且是“接受的”。使用该列表,我返回到用户列表以获取朋友的用户属性并作为新对象返回

希望这有帮助

private const int DNNSOCIAL_RELATIONSHIPTYPE_FRIEND = 1;
private const int DNNSOCIAL_RELATIONSHIPTYPE_FOLLOWER = 2;

public List<UserFriend> GetUserFriends(int portalid, int userid)
{
    UserInfo currentUser = UserController.GetUserById(portalid, userid);

    var friends = currentUser.Social.UserRelationships
                    .Where(r => r.RelationshipId == DNNSOCIAL_RELATIONSHIPTYPE_FRIEND 
                        && r.Status == RelationshipStatus.Accepted);

    return (from f in friends
            join u in UserController.GetUsers(portalid).Cast<UserInfo>()
            on f.RelatedUserId equals u.UserID
            select new UserFriend { UserId = u.UserID,  DisplayName = u.DisplayName, ProfilePicUrl = u.Profile.PhotoURL }).ToList();
}
VB.NET版本

Public Function GetUserFriends(portalid As Integer, userid As Integer) As List(Of UserFriend)
    Dim currentUser As UserInfo = UserController.GetUserById(portalid, userid)

Dim friends = currentUser.Social.UserRelationships.Where(Function(r) r.RelationshipId = DNNSOCIAL_RELATIONSHIPTYPE_FRIEND AndAlso r.Status = Social.RelationshipStatus.Accepted)

Return (From f In friends
        Join u In UserController.GetUsers(portalid).Cast(Of UserInfo)()
        On f.RelatedUserId Equals u.UserID
        Select New UserFriend With {.UserId = u.UserID, .DisplayName = u.DisplayName, .ProfilePicUrl = u.Profile.PhotoURL}).ToList()
 End Function

我有这个密码。我获取当前用户,然后获取所有关系用户ID,这些关系用户ID是朋友(与追随者)并且是“接受的”。使用该列表,我返回到用户列表以获取朋友的用户属性并作为新对象返回

希望这有帮助

private const int DNNSOCIAL_RELATIONSHIPTYPE_FRIEND = 1;
private const int DNNSOCIAL_RELATIONSHIPTYPE_FOLLOWER = 2;

public List<UserFriend> GetUserFriends(int portalid, int userid)
{
    UserInfo currentUser = UserController.GetUserById(portalid, userid);

    var friends = currentUser.Social.UserRelationships
                    .Where(r => r.RelationshipId == DNNSOCIAL_RELATIONSHIPTYPE_FRIEND 
                        && r.Status == RelationshipStatus.Accepted);

    return (from f in friends
            join u in UserController.GetUsers(portalid).Cast<UserInfo>()
            on f.RelatedUserId equals u.UserID
            select new UserFriend { UserId = u.UserID,  DisplayName = u.DisplayName, ProfilePicUrl = u.Profile.PhotoURL }).ToList();
}
VB.NET版本

Public Function GetUserFriends(portalid As Integer, userid As Integer) As List(Of UserFriend)
    Dim currentUser As UserInfo = UserController.GetUserById(portalid, userid)

Dim friends = currentUser.Social.UserRelationships.Where(Function(r) r.RelationshipId = DNNSOCIAL_RELATIONSHIPTYPE_FRIEND AndAlso r.Status = Social.RelationshipStatus.Accepted)

Return (From f In friends
        Join u In UserController.GetUsers(portalid).Cast(Of UserInfo)()
        On f.RelatedUserId Equals u.UserID
        Select New UserFriend With {.UserId = u.UserID, .DisplayName = u.DisplayName, .ProfilePicUrl = u.Profile.PhotoURL}).ToList()
 End Function

我刚刚注意到它只在用户的一端起作用。发送请求并建立友谊的用户可以在调用上述函数时查看。但是,当从其个人资料调用此函数时,接收方将自己视为朋友。有什么想法吗?我刚刚注意到它只在用户的一端起作用。发送请求并建立友谊的用户可以在调用上述函数时查看。但是,当从其个人资料调用此函数时,接收方将自己视为朋友。有什么想法吗?