示例#1
0
        public void PopulateAssignedRoleData(RUserMgmtContext context,
                                             User user)
        {
            var allRoles        = context.Roles;
            var instructorRoles = new HashSet <int>(
                user.UsersRoles.Select(c => c.RoleId));

            AssignedRoleDataList = new List <AssignedRoleData>();
            foreach (var role in allRoles)
            {
                AssignedRoleDataList.Add(new AssignedRoleData
                {
                    RoleId   = role.RoleId,
                    Name     = role.Name,
                    Assigned = instructorRoles.Contains(role.RoleId)
                });
            }
        }
示例#2
0
        public void UpdateUserRoles(RUserMgmtContext context,
                                    string[] selectedRoles, User userToUpdate)
        {
            if (selectedRoles == null)
            {
                userToUpdate.UsersRoles = new List <UsersRoles>();
                return;
            }

            var selectedRolesHS = new HashSet <string>(selectedRoles);
            var userRoles       = new HashSet <int>
                                      (userToUpdate.UsersRoles.Select(c => c.Role.RoleId));

            foreach (var role in context.Roles)
            {
                if (selectedRolesHS.Contains(role.RoleId.ToString()))
                {
                    if (!userRoles.Contains(role.RoleId))
                    {
                        userToUpdate.UsersRoles.Add(
                            new UsersRoles
                        {
                            UserId = userToUpdate.UserId,
                            RoleId = role.RoleId
                        });
                    }
                }
                else
                {
                    if (userRoles.Contains(role.RoleId))
                    {
                        UsersRoles roleToRemove
                            = userToUpdate
                              .UsersRoles
                              .SingleOrDefault(i => i.RoleId == role.RoleId);
                        context.Remove(roleToRemove);
                    }
                }
            }
        }