Hi @nitindpraj,
Try with this code
import sailpoint.object.Filter;
import sailpoint.object.Identity;
import sailpoint.tools.GeneralException;
import sailpoint.object.QueryOptions;
import sailpoint.tools.Util;
boolean checkUniquemail(String uniqueEmail) {
QueryOptions queryOption = new QueryOptions();
queryOption.addFilter(Filter.eq("email",uniqueEmail));
Iterator identityIterator = context.search(Identity.class, queryOption);
while ( identityIterator.hasNext() ) {
return false;
}
return true;
}
String uniqueEmail="";
int increment=0;
String domain="@test.com";
String firstName="";
String lastName="";
firstName = identity.getAttribute("firstname");
lastName = identity.getAttribute("lastname");
if (Util.isNotNullOrEmpty(lastName)) {
lastName= lastName.replaceAll("[[.]+]", "");
}
if (Util.isNotNullOrEmpty(firstName) && Util.isNotNullOrEmpty(lastName)) {
uniqueEmail = firstName + lastName + domain;
} else if (Util.isNotNullOrEmpty(firstName)) {
uniqueEmail = firstName + domain;
} else if (Util.isNotNullOrEmpty(lastName)) {
uniqueEmail = lastName + domain;
} else {
throw new IllegalArgumentException("Both first name and last name cannot be null or empty");
}
while (!checkUniquemail(uniqueEmail)) {
increment++;
uniqueEmail = uniqueEmail.substring(0,uniqueEmail.indexOf('@'))+ increment + domain;
}
return uniqueEmail.trim().toLowerCase();