• Vibhuti Gupta 10
  • NEWBIE
  • 10 Points
  • Member since 2016

  • Chatter
    Feed
  • 0
    Best Answers
  • 2
    Likes Received
  • 0
    Likes Given
  • 2
    Questions
  • 1
    Replies
trigger FeedCommentTrigger on FeedComment(after insert){
    Set<String> users = new Set<String>();
     Set<Id> parentIdSet = new Set<Id>();
     Set<Id> UserIdkeySet = new Set<Id>();
     Set<Id> alreadyExistingMemberidSet = new Set<Id>();
      Set<Id> unCommonIdSet = new Set<Id>();
    Map<Id, Id> objUserCaseMap = new Map<Id, Id>();
    Map<Id, id> UserIdParentMap = new Map<Id, id>();
   // set<CaseTeamMember> objCaseTeamMemberSet = new set<CaseTeamMember>();
    List<CaseTeamMember> objCaseTeamMemberList = new List<CaseTeamMember>();
    /*Set<Id> objCaseId = new Set<Id>();    
    for(FeedItem fi : Trigger.New){        
        if(fi.ParentId.getSObjectType() == Case.SObjectType){  
            objCaseId.add(fi.ParentId);
        }   
    }*/
   
    for(FeedComment fc : Trigger.New){        
        if(fc.ParentId.getSObjectType() == Case.SObjectType){  
            UserIdParentMap.put(fc.CreatedById ,fc.ParentId);          
            ConnectApi.FeedElement FeedComment= ConnectApi.ChatterFeeds.getFeedElement(null, fc.Id);
            List<ConnectApi.MessageSegment> messageSegments = FeedComment.body.messageSegments;
            for (ConnectApi.MessageSegment messageSegment : messageSegments) {                
                if (messageSegment instanceof ConnectApi.MentionSegment) {                    
                    ConnectApi.MentionSegment mentionSegment = (ConnectApi.MentionSegment) messageSegment;
                    System.debug('Mentioned user name: ' + mentionSegment.name);
                    System.debug('Mentioned user id: ' + mentionSegment);
                    fc.addError('mentionSegment'+mentionSegment);

                 //  UserIdParentMap.put(mentionSegment.user.id,fi.ParentId);
                 //   users.add(mentionSegment.user.id);
                 //   System.debug('ParentID -->>'+fi.ParentId);                    
                 //   System.debug('objUserCaseMap-->>'+objUserCaseMap);                    
                                   
                }
            }
             parentIdSet.add(fc.ParentId);
        }
    }
    
    UserIdkeySet = UserIdParentMap.KeySet();
     for(CaseTeamMember ctm :[select MemberId,ParentId from CaseTeamMember where ParentId in:parentIdSet])
         {    
             alreadyExistingMemberidSet.add(ctm.MemberId);
         }
 
     for(string s : UserIdkeySet){
            if(!alreadyExistingMemberidSet.contains(s)){
                unCommonIdSet.add(s);                    
            }
        }
 
     for(Id i:unCommonIdSet){
                 CaseTeamMember objCaseTeamMember = new CaseTeamMember(MemberId = i,
                                                                       ParentId = UserIdParentMap.get(i), TeamRoleId = '0B7G00000008Oo1');
                    objCaseTeamMemberList.add(objCaseTeamMember);
        }
        
    if(objCaseTeamMemberList.size()>0){  
        System.debug('objCaseTeamMemberList-->>'+objCaseTeamMemberList);
        insert objCaseTeamMemberList;
        System.debug('objCaseTeamMemberList-->>'+objCaseTeamMemberList);
    }
}