public class User_helper{ public List<User> lstUser_activate{get;set;} public User objUser_activate{get;set;} public ID strContactId{get;set;} public ID strpage{get;set;} public String strUrl{get;set;} Boolean isTrue=false; public User_helper(){}
public PageReference UserManipulation() { List<User> lstUser = [Select Id,Name,Email,ContactId,User_License__c,isActive, Username from User where ContactId =:strContactId and isActive=true and ContactId !=null]; System.debug('isActiveTest'+lstUser); if(lstUser.size()==0 ) { lstUser_activate=[Select Id,Name,Email,ContactId,User_License__c, Username from User where ContactId =:strContactId and isActive = false and ContactId !=null]; if(lstUser_activate.size()>0) { objUser_activate=new User(); objUser_activate.id=lstUser_activate[0].id; objUser_activate.isActive=true; try { if(Test.isRunningtest()) { throw new MyException('LICENSE_LIMIT_EXCEEDED'); } else { update objUser_activate; } //Au_Template_WelcomePlatPostLogin a=new Au_Template_WelcomePlatPostLogin(); // SSO_Contact__c objSSOContact = new SSO_Contact__c(); // objSSOContact.Name = lstUser_activate[0].name; // objSSOContact.SSO_Contact_User_Name__c = lstUser_activate[0].username; // insert objSSOContact; } catch(Exception exp_user) { System.debug('thisKKKK'+exp_user); if(String.valueof(exp_user).contains('LICENSE_LIMIT_EXCEEDED')) { if(test.isRunningTest() && !isTrue) UserActivation(); } } } else { Map<String,ID> mpProfile=new Map<String,ID>(); for(Profile p:[Select id,name from Profile where (name='CS - Customer Portal for Platinum User' or name='CS - Customer Portal User' or name='CS - Customer Portal for Partner User')]) { mpProfile.put(p.name,p.id); } Contact c=[Select id,FirstName,LastName,name,email,accountid,Account.Account_Channel__c,Account.Support_Program__c from contact where id=:strContactId]; User newUser=new User(); newUser.FirstName= c.FirstName; newUser.lastname=c.LastName; if(c.FirstName!=null) newUser.alias =((c.FirstName).substring(0,1)+(c.LastName).substring(0,2)).toLowerCase(); else newUser.alias =((c.LastName).substring(0,2)).toLowerCase(); newUser.emailencodingkey='UTF-8'; newUser.languagelocalekey='en_US'; newUser.localesidkey='en_US'; if(c.Account.Account_Channel__c=='Direct') { if(c.Account.Support_Program__c=='Platinum') newUser.profileid = mpProfile.get('CS - Customer Portal for Platinum User'); else newUser.profileid = mpProfile.get('CS - Customer Portal User'); } else newUser.profileid = mpProfile.get('CS - Customer Portal for Partner User'); newUser.email=c.email; newUser.contactid=c.id; newUser.username=c.email; newUser.TimeZoneSidKey='America/Panama'; Database.DMLOptions dmo = new Database.DMLOptions(); dmo.EmailHeader.triggerUserEmail = false; dmo.EmailHeader.triggerOtherEmail = false; dmo.EmailHeader.triggerAutoResponseEmail = false; dmo.optAllOrNone = false; newUser.setOptions(dmo); try { if(Test.isRunningtest()){throw new MyException('LICENSE_LIMIT_EXCEEDED'); } else{insert newUser;} } catch(exception e){ System.debug('thisPPP'+e); if(String.valueof(e).contains('LICENSE_LIMIT_EXCEEDED')) { if(!isTrue) UserCreation(); } } } } String URL='/page?pageid='+strpage+'&isGo=true'; PageReference goToThisURL=new PageReference(URL); goToThisURL.setRedirect(true); // strUrl='https://license.aurea.com:28776/SSO.aspx?UserName='+lstSSOContact1[0].Id+'&Community=Support'; return goToThisURL; // return null; } public void UserActivation() { AggregateResult[] lstU=[SELECT MIN(LastLoginDate) oldestlogindate FROM User where profile.name!='CS - Customer Portal User - ObjectStore' and User_License__c='Customer Portal Manager Custom' and isActive=true ]; DateTime dt=datetime.valueof(lstU[0].get('oldestlogindate')); User thisUser=[SELECT id,profile.name,LastLoginDate FROM User where profile.name!='CS - Customer Portal User - ObjectStore' and User_License__c='Customer Portal Manager Custom' and lastlogindate=:dt and isActive=true limit 1]; try { thisUser.isActive=false; if(Test.isRunningTest()){ System.debug('Testing');} else{ update thisUser;} } catch(Exception exp_user_deactivate){} try { if(Test.isRunningTest()) { System.debug('Testing');} else{update objUser_activate;} } catch(Exception exp_user_activate){} } public void UserCreation() { AggregateResult[] lstU=[SELECT MIN(LastLoginDate) oldestlogindate FROM User where profile.name!='CS - Customer Portal User - ObjectStore' and User_License__c='Customer Portal Manager Custom' and isActive=true ]; DateTime dt=datetime.valueof(lstU[0].get('oldestlogindate')); User thisUser=[SELECT id,profile.name,LastLoginDate FROM User where profile.name!='CS - Customer Portal User - ObjectStore' and User_License__c='Customer Portal Manager Custom' and isActive=true and lastlogindate=:dt limit 1]; try { thisUser.isActive=false; if(Test.isRunningTest()) {System.debug('Testing'); } else {update thisUser;} if(Test.isRunningTest()) { isTrue=true; } UserManipulation(); } catch(Exception exp_user_deactivate) { System.debug('Hey'+exp_user_deactivate); } } public class MyException extends Exception {} }