int UpdatePortalGroup(PortalGroupInfo portalGroup)
        {
            UserCopiedCallback callback = delegate { };
            var @group = PortalGroupController.GetPortalGroups().Single(g => g.PortalGroupId == portalGroup.PortalGroupId);

            @group.PortalGroupName        = portalGroup.PortalGroupName;
            @group.AuthenticationDomain   = portalGroup.AuthenticationDomain;
            @group.PortalGroupDescription = portalGroup.Description;
            PortalGroupController.UpdatePortalGroup(@group);
            var currentPortals = PortalsOfGroup(portalGroup.PortalGroupId, portalGroup.MasterPortal.PortalId).ToList();

            foreach (var portal in currentPortals)
            {
                if (portalGroup.Portals == null || portalGroup.Portals.All(p => p.PortalId != portal.PortalID))
                {
                    PortalGroupController.RemovePortalFromGroup(portal, @group, false, callback);
                }
            }

            if (portalGroup.Portals != null)
            {
                foreach (var portal in portalGroup.Portals)
                {
                    if (currentPortals.All(p => p.PortalID != portal.PortalId))
                    {
                        var p = new PortalController().GetPortal(portal.PortalId);
                        PortalGroupController.AddPortalToGroup(p, @group, callback);
                    }
                }
            }
            return(@group.PortalGroupId);
        }
 public int Save(PortalGroupInfo portalGroup)
 {
     Trace.TraceInformation("Save PortalGroup");
     if (portalGroup.PortalGroupId == -1)
     {
         return(AddPortalGroup(portalGroup));
     }
     else
     {
         return(UpdatePortalGroup(portalGroup));
     }
 }
        int AddPortalGroup(PortalGroupInfo portalGroup)
        {
            UserCopiedCallback callback = delegate { };
            var group = new DotNetNuke.Entities.Portals.PortalGroupInfo
            {
                AuthenticationDomain   = portalGroup.AuthenticationDomain,
                MasterPortalId         = portalGroup.MasterPortal.PortalId,
                PortalGroupDescription = portalGroup.Description,
                PortalGroupName        = portalGroup.PortalGroupName
            };

            PortalGroupController.AddPortalGroup(@group);
            if (portalGroup.Portals != null)
            {
                foreach (var portal in portalGroup.Portals)
                {
                    var p = new PortalController().GetPortal(portal.PortalId);
                    PortalGroupController.AddPortalToGroup(p, @group, callback);
                }
            }
            return(@group.PortalGroupId);
        }