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 {}
}
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 {}
}
No comments:
Post a Comment