You need to sign in to do that
Don't have an account?
Sana123
test class for this code with using asserts
public class ContactTriggerHandler {
public static void getContactDetails(List<Contact> listOfContacts ,Map<Id,Contact> mapOfContact)
{
Set<Id> setAccIds = new Set<Id>();
for(Contact con: listOfContacts != null ? listOfContacts :mapOfContact.values()){
if(mapOfContact == null && con.AccountId != null){
setAccIds.add(con.AccountId);
}
if(listOfContacts != null && mapOfContact != null
&& (con.AccountId != mapOfContact.get(con.Id).AccountId || con.FirstName!=mapOfContact.get(con.Id).FirstName
|| con.LastName != mapOfContact.get(con.Id).LastName)){
if(con.AccountId != null)
{
setAccIds.add(con.AccountId);
}
if(mapOfContact.get(con.Id).AccountId != null)
{
setAccIds.add(mapOfContact.get(con.Id).AccountId);
}
}
if(listOfContacts == null && con.AccountId != null){
setAccIds.add(con.AccountId);
}
}
if(setAccIds.size() > 0){
Map<Id , Account> mapOfAccount = new Map<Id , Account>();
for(Contact con1: [SELECT id, AccountId , Name FROM Contact WHERE AccountId IN : setAccIds]){
if(!mapOfAccount.containskey(con1.AccountId)){
mapOfAccount.put(con1.AccountId, new Account (Id = con1.AccountId , Contact_Details__c =''));
}
mapOfAccount.get(con1.AccountId).Contact_Details__c += con1.Name + '\n';
if(mapOfAccount.size() > 0){
update mapOfAccount.values();
}
}
}
}
}
public static void getContactDetails(List<Contact> listOfContacts ,Map<Id,Contact> mapOfContact)
{
Set<Id> setAccIds = new Set<Id>();
for(Contact con: listOfContacts != null ? listOfContacts :mapOfContact.values()){
if(mapOfContact == null && con.AccountId != null){
setAccIds.add(con.AccountId);
}
if(listOfContacts != null && mapOfContact != null
&& (con.AccountId != mapOfContact.get(con.Id).AccountId || con.FirstName!=mapOfContact.get(con.Id).FirstName
|| con.LastName != mapOfContact.get(con.Id).LastName)){
if(con.AccountId != null)
{
setAccIds.add(con.AccountId);
}
if(mapOfContact.get(con.Id).AccountId != null)
{
setAccIds.add(mapOfContact.get(con.Id).AccountId);
}
}
if(listOfContacts == null && con.AccountId != null){
setAccIds.add(con.AccountId);
}
}
if(setAccIds.size() > 0){
Map<Id , Account> mapOfAccount = new Map<Id , Account>();
for(Contact con1: [SELECT id, AccountId , Name FROM Contact WHERE AccountId IN : setAccIds]){
if(!mapOfAccount.containskey(con1.AccountId)){
mapOfAccount.put(con1.AccountId, new Account (Id = con1.AccountId , Contact_Details__c =''));
}
mapOfAccount.get(con1.AccountId).Contact_Details__c += con1.Name + '\n';
if(mapOfAccount.size() > 0){
update mapOfAccount.values();
}
}
}
}
}
You can take reference from the below code:
Please mark it as Best Answer if it helps you.
Thanks & Regards
Suraj Tripathi
All Answers
Thanks,
Maharajan.C
You can take reference from the below code:
Please mark it as Best Answer if it helps you.
Thanks & Regards
Suraj Tripathi
trigger ContactTrigger on Contact (after insert, after update, after delete) {
If(trigger.isAfter &&(Trigger.isInsert || Trigger.isUpdate)){
ContactTriggerHandler.getContactDetails(trigger.new,trigger.oldMap);
}
If(trigger.isAfter &&Trigger.isDelete){
ContactTriggerHandler.getContactDetails(trigger.new,trigger.oldMap);
}
}
Thanks,
Maharajan.C