/**
*@description        :This methode useful for to assign permission set group to the user
*@author             : Gopi
*@group              : 
*@created on         : 
*@last modified on   :
*@last modified by   : 
*@modification log   : 
**/ 
@future
    public static void assignPermissionSetGroupToUser(Id userId) {
        try{
            PermissionSetGroup psGroup = [SELECT Id FROM PermissionSetGroup WHERE DeveloperName = 'PortalAuth_User_Permission_Set_Group' LIMIT 1];
            
            if (psGroup != null) {
                system.debug('psGroup==>'+psGroup);
                system.debug('userId==>'+userId);
                PermissionSetAssignment psAssignment = new PermissionSetAssignment();
                psAssignment.AssigneeId = userId;
                psAssignment.PermissionSetGroupId = psGroup.Id;
                insert psAssignment;
                System.debug('Permission Set Group Assignment: ' + psAssignment);
            } else {
                System.debug('Permission Set Group not found.');
                
            }
        }catch(Exception a){
            CustomException__c ex=new CustomException__c();
            ex.ClassName__c='AccountContactCreationController';
            ex.CreatedById = UserInfo.getUserId();
            //ex.Name = 'Exception Name'; 
            ex.Exception_Message__c = a.getMessage();
            ex.Exception_Type__c = a.getTypeName();
            //ex.Govt_Limit_in_Executing_Code__c = a.getGovtLimit();
            ex.LastModifiedById = UserInfo.getUserId();
            ex.Line_Number__c = a.getLineNumber(); 
            ex.MethodName__c = 'assignPermissionSetGroupToUser'; 
            ex.OwnerId = UserInfo.getUserId();
            // ex.Related_To_Number__c = '12345'; 
            ex.StackTrace__c = a.getStackTraceString();
            
            
            insert ex;
        }
    }