static void ParseUserMembership() { Console.WriteLine("Start to sync AAD memberships ..."); foreach (IUser retrievedUser in AllUsers) { IUserFetcher retrievedUserFetcher = (User)retrievedUser; try { IPagedCollection<IDirectoryObject> pagedCollection = retrievedUserFetcher.MemberOf.ExecuteAsync().Result; do { //Console.WriteLine("\n {0} is a member of the following Group and Roles (IDs)", retrievedUser.DisplayName); List<IDirectoryObject> directoryObjects = pagedCollection.CurrentPage.ToList(); foreach (IDirectoryObject directoryObject in directoryObjects) { if (directoryObject is Group) { Group group = directoryObject as Group; var userGroupAssignment = new UserGroupAssignmentsEntity(retrievedUser.ObjectId, group.ObjectId); userGroupAssignment.UserPrincipleName = retrievedUser.UserPrincipalName; userGroupAssignment.GroupName = group.DisplayName; userGroupAssignmentOperation.InsertEntity(userGroupAssignment); } if (directoryObject is DirectoryRole) { DirectoryRole role = directoryObject as DirectoryRole; var userAdminRoleAssignment = new UserAdminRoleAssignmentEntity(retrievedUser.ObjectId, role.ObjectId); userAdminRoleAssignment.UserPrincipleName = retrievedUser.UserPrincipalName; userAdminRoleAssignment.AdminRoleName = role.DisplayName; userAdminRoleAssignmentOper.InsertEntity(userAdminRoleAssignment); } } pagedCollection = pagedCollection.GetNextPageAsync().Result; } while (pagedCollection != null); } catch (Exception e) { Console.WriteLine("\nError getting user's groups and roles memberships. {0} {1}", e.Message, e.InnerException != null ? e.InnerException.Message : ""); } } }
public bool InsertEntity(UserAdminRoleAssignmentEntity assignment) { var operation = TableOperation.InsertOrReplace(assignment); _table.Execute(operation); return true; }