• Maruti Patil 14
  • NEWBIE
  • 0 Points
  • Member since 2023

  • Chatter
    Feed
  • 0
    Best Answers
  • 0
    Likes Received
  • 0
    Likes Given
  • 1
    Questions
  • 0
    Replies
trigger AuthorResearchPaperTrigger on Author_Research_Paper__c (before insert) {
    switch on trigger.operationType{
        when BEFORE_INSERT{
            Set<id> researchPaperIdSet = new Set<id>();
            Set<id> authorIdSet = new Set<id>();
            for(Author_Research_Paper__c authRePaperObj : trigger.new){
                if(authRePaperObj.Research_Paper__c != null){
                    researchPaperIdSet.add(authRePaperObj.Research_Paper__c);
                }
                if(authRePaperObj.Author__c != null){
                    authorIdSet.add(authRePaperObj.Author__c);
                }
            }
            List<Author_Research_Paper__c> authorResearcPaperList = [SELECT id FROM Author_Research_Paper__c WHERE Research_Paper__c IN : researchPaperIdSet AND Author__c IN : authorIdSet];
            List<String> researchPaperNameList = new List<String>();
            List<String> authorNameList = new List<String>();
            for(Author_Research_Paper__c authRePaperObj : authorResearcPaperList){
                researchPaperNameList.add(authRePaperObj.Research_Paper__c);
                authorNameList.add(authRePaperObj.Author__c);
            }
            for(Author_Research_Paper__c authRePaperObj : trigger.new){
                if(researchPaperNameList.contains(authRePaperObj.Research_Paper__c) && authorNameList.size() > 5){
                    authRePaperObj.addError('Only 5 Authors are allowed.');
                }
            }
        }
    }
}