public void AddPortalToGroup(PortalInfo portal, PortalGroupInfo portalGroup, UserCopiedCallback callback) { Requires.NotNull("portal", portal); Requires.PropertyNotNegative("portal", "PortalId", portal.PortalID); Requires.NotNull("portalGroup", portalGroup); Requires.PropertyNotNegative("portalGroup", "PortalGroupId", portalGroup.PortalGroupId); Requires.PropertyNotNegative("portalGroup", "MasterPortalId", portalGroup.MasterPortalId); OnAddPortalToGroupStart(callback, portal); var users = UserController.GetUsers(portal.PortalID); var masterUsers = UserController.GetUsers(portalGroup.MasterPortalId); var totalUsers = users.Count + masterUsers.Count; var userNo = 0; if (users.Count > 0) { var masterPortal = _portalController.GetPortal(portalGroup.MasterPortalId); foreach (UserInfo user in users) { userNo += 1; //move user to master portal UserController.CopyUserToPortal(user, masterPortal, true, true); OnUserAddedToSiteGroup(callback, portal, user, totalUsers, userNo); } } if (masterUsers.Count > 0) { var autoAssignRoles = TestableRoleController.Instance.GetRoles(portal.PortalID, role => role.AutoAssignment && role.Status == RoleStatus.Approved); foreach (UserInfo user in masterUsers) { userNo += 1; foreach (var autoAssignRole in autoAssignRoles) { var roleController = new RoleController(); roleController.AddUserRole(portalGroup.MasterPortalId, user.UserID, autoAssignRole.RoleID, Null.NullDate, Null.NullDate); } OnUserAddedToSiteGroup(callback, portal, user, totalUsers, userNo); } } OnAddPortalToGroupFinishing(callback, portal, users.Count); RemoveProfileDefinitions(portal); //Add portal to group portal.PortalGroupID = portalGroup.PortalGroupId; _portalController.UpdatePortalInfo(portal); OnAddPortalToGroupFinished(callback, portal, portalGroup, users.Count); }
public int AddPortalGroup(PortalGroupInfo portalGroup) { //Argument Contract Requires.NotNull("portalGroup", portalGroup); portalGroup.PortalGroupId = _dataService.AddPortalGroup(portalGroup, UserController.Instance.GetCurrentUserInfo().UserID); //Update portal var portal = _portalController.GetPortal(portalGroup.MasterPortalId); if (portal != null) { portal.PortalGroupID = portalGroup.PortalGroupId; _portalController.UpdatePortalInfo(portal); } ClearCache(); return(portalGroup.PortalGroupId); }
public void AddPortalToGroup(PortalInfo portal, PortalGroupInfo portalGroup, UserCopiedCallback callback) { //Argument Contract Requires.NotNull("portal", portal); Requires.PropertyNotNegative("portal", "PortalId", portal.PortalID); Requires.NotNull("portalGroup", portalGroup); Requires.PropertyNotNegative("portalGroup", "PortalGroupId", portalGroup.PortalGroupId); Requires.PropertyNotNegative("portalGroup", "MasterPortalId", portalGroup.MasterPortalId); var masterPortal = _portalController.GetPortal(portalGroup.MasterPortalId); var users = UserController.GetUsers(portal.PortalID); var masterUsers = UserController.GetUsers(masterPortal.PortalID); var userNo = 0; foreach (UserInfo user in users) { userNo += 1; //move user to master portal UserController.CopyUserToPortal(user, masterPortal, true, true); //Callback to update progress bar var args = new UserCopiedEventArgs { TotalUsers = users.Count + masterUsers.Count, UserNo = userNo, UserName = user.Username, PortalName = portal.PortalName }; callback(args); } var roleController = new RoleController(); //Assign the new portal's roles to master portal users foreach (UserInfo user in masterUsers) { userNo += 1; foreach (var role in TestableRoleController.Instance.GetRoles(portal.PortalID, role => role.AutoAssignment && role.Status == RoleStatus.Approved)) { roleController.AddUserRole(masterPortal.PortalID, user.UserID, role.RoleID, Null.NullDate, Null.NullDate); } //Callback to update progress bar var args = new UserCopiedEventArgs { TotalUsers = users.Count + masterUsers.Count, UserNo = userNo, UserName = user.Username, PortalName = portal.PortalName }; callback(args); } //Remove Profile Definitions foreach (ProfilePropertyDefinition definition in ProfileController.GetPropertyDefinitionsByPortal(portal.PortalID)) { ProfileController.DeletePropertyDefinition(definition); } //Add portal to group portal.PortalGroupID = portalGroup.PortalGroupId; _portalController.UpdatePortalInfo(portal); }