Friends
List of examples:
- Requesting a friendship
- Approving a friendship
- Rejecting a friendship
- Updating multiple friends
- Deleting friends
Requesting a friendship
// Creates a sample user to which the friendship request will be sent
UserInfo newFriend = new UserInfo();
newFriend.UserName = "Johnny";
newFriend.FullName = "John Smith";            
UserInfoProvider.SetUserInfo(newFriend);
// Creates a friendship object
FriendInfo newFriendship = new FriendInfo();
// Sets the friendship properties
newFriendship.FriendUserID = MembershipContext.AuthenticatedUser.UserID;
newFriendship.FriendRequestedUserID = newFriend.UserID;
newFriendship.FriendRequestedWhen = DateTime.Now;
newFriendship.FriendComment = "Sample friend request comment.";
newFriendship.FriendStatus = FriendshipStatusEnum.Waiting;
// Saves the friend to the database
FriendInfoProvider.SetFriendInfo(newFriendship);
Approving a friendship
// Gets the users involved in the friendship (request)
UserInfo user = MembershipContext.AuthenticatedUser;
UserInfo friend = UserInfoProvider.GetUserInfo("Johnny");
if (friend != null)
{
    // Gets the friendship between the users
    FriendInfo updateFriendship = FriendInfoProvider.GetFriendInfo(user.UserID, friend.UserID);
    if (updateFriendship != null)
    {
        // Approves the firendship
        updateFriendship.FriendStatus = FriendshipStatusEnum.Approved;
        updateFriendship.FriendRejectedBy = 0;
        updateFriendship.FriendApprovedBy = user.UserID;
        updateFriendship.FriendApprovedWhen = DateTime.Now;
        // Saves the changes to the database
        FriendInfoProvider.SetFriendInfo(updateFriendship);
    }
}
Rejecting a friendship
// Gets the users involved in the friendship (request)
UserInfo user = MembershipContext.AuthenticatedUser;
UserInfo friend = UserInfoProvider.GetUserInfo("Johnny");
if (friend != null)
{
    // Gets the friendship between the users
    FriendInfo updateFriendship = FriendInfoProvider.GetFriendInfo(user.UserID, friend.UserID);
    // Rejects the friendship
    updateFriendship.FriendStatus = FriendshipStatusEnum.Rejected;
    updateFriendship.FriendApprovedBy = 0;
    updateFriendship.FriendRejectedBy = user.UserID;
    updateFriendship.FriendRejectedWhen = DateTime.Now;
    // Saves the changes to the database
    FriendInfoProvider.SetFriendInfo(updateFriendship);
}
Updating multiple friends
// Gets a user
UserInfo user = UserInfoProvider.GetUserInfo("Johnny");
if (user != null)
{
    // Gets all friendships of the user that are not approved yet or have been rejected
    InfoDataSet<FriendInfo> friends = FriendInfoProvider.GetRequestedFriends(user.UserID);
    // Loops through individual friends
    foreach (FriendInfo modifyFriend in friends)
    {
        // Approves all friendships
        modifyFriend.FriendStatus = FriendshipStatusEnum.Approved;
        modifyFriend.FriendRejectedBy = 0;
        modifyFriend.FriendApprovedBy = user.UserID;
        modifyFriend.FriendApprovedWhen = DateTime.Now;
        // Saves the changes to the database
        FriendInfoProvider.SetFriendInfo(modifyFriend);
    }
}
Deleting friends
// Gets a user
UserInfo user = UserInfoProvider.GetUserInfo("Johnny");
if (user != null)
{
    // Gets all of the user's friends
    InfoDataSet<FriendInfo> friends = FriendInfoProvider.GetFullUserFriends(user.UserID);
    // Deletes all friends
    foreach (FriendInfo deleteFriend in friends)
    {
        FriendInfoProvider.DeleteFriendInfo(deleteFriend);
    }
}