public void AddUsersToRoles(string[] usernames, string[] roleNames) { lock (MDB) { try { foreach (var u in usernames) { var user = MDB.UserProfiles.Single(x => x.UserName == u); foreach (var r in roleNames) { var role = MDB.webpages_Roles.Single(x => x.RoleName == r); var pp = new DB.webpages_UsersInRole() { UserProfile = user, webpages_Role = role }; MDB.webpages_UsersInRoles.InsertOnSubmit(pp); } } MDB.SubmitChanges(); } catch (Exception ex) { HandleMyException(ex); } } }
public void AddRoleToUser(IHasUserId user, RoleContract[] roles, int modifiedByUserId) { try { lock (MDB) { var profile = MDB.UserProfiles.FirstOrDefault(p => p.UserId == user.UserId); if (profile == null) { throw new Xxception("User was not found by id") { Tag = new XDocument(new XElement("UserId", user.UserId)) } } ; foreach (var newRole in roles) { if (!profile.webpages_UsersInRoles.Any(r => r.RoleId == newRole.Role.RoleId || r.webpages_Role.RoleName == newRole.Role.RoleName)) { var dbRole = MDB.webpages_Roles.FirstOrDefault(r => r.RoleId == newRole.Role.RoleId || r.RoleName == newRole.Role.RoleName); if (dbRole == null) { dbRole = new DB.webpages_Role() { RoleId = newRole.Role.RoleId, RoleName = newRole.Role.RoleName }; MDB.webpages_Roles.InsertOnSubmit(dbRole); } var dbUserInRole = new DB.webpages_UsersInRole() { RoleId = newRole.Role.RoleId, webpages_Role = dbRole }; profile.webpages_UsersInRoles.Add(dbUserInRole); MDB.webpages_UsersInRolesAudits.InsertOnSubmit(new DB.webpages_UsersInRolesAudit() { Action = Convert.ToByte(AddRemoveOptions.Add), ModificationTime = DateTime.UtcNow, ModifiedBy = modifiedByUserId, RoleId = newRole.Role.RoleId, UserId = user.UserId }); } } MDB.SubmitChanges(); } } catch (Exception ex) { HandleMyException(ex); } }
public void InsertWebpagesUsersInRole(WebpagesUsersInRolesContract[] d) { lock (MDB) { try { foreach (var x in d) { var pp = new DB.webpages_UsersInRole(); x.WebpagesUsersInRoles.CopyTo(pp); MDB.webpages_UsersInRoles.InsertOnSubmit(pp); } MDB.SubmitChanges(); } catch (Exception ex) { HandleMyException(ex); } } }