static function createPcpActivity($params, $activityname)
 {
     if (empty($activityname)) {
         return null;
     }
     if (!isset($params['source_contact_id'])) {
         $params['source_contact_id'] = self::getloggedInUserId();
     }
     $sourceName = CRM_Contact_BAO_Contact::displayName($params['source_contact_id']);
     if (isset($params['target_contact_id'])) {
         $targetName = CRM_Contact_BAO_Contact::displayName($params['target_contact_id']);
     }
     //to handle to default values, subject and description for the activity type
     switch ($activityname) {
         case CRM_Pcpteams_Constant::C_AT_TEAM_CREATE:
             $subject = 'Team is created';
             $details = 'Team is created' . $targetName;
             break;
         case CRM_Pcpteams_Constant::C_AT_INVITATION_FROM_ADMIN:
             $sourceName .= ' ( Team Admin )';
             $subject = 'Team Member Invite to Join Team';
             $details = 'Invited to join team ' . $targetName . ' by ' . $sourceName;
             break;
         case CRM_Pcpteams_Constant::C_AT_INVITATION_FROM_MEMBER:
             $sourceName .= ' ( Team Member )';
             $subject = 'Team Member Invite to Join Team';
             $details = 'Invited to join team ' . $targetName . ' by ' . $sourceName;
             break;
         case CRM_Pcpteams_Constant::C_AT_GROUP_JOIN:
             $subject = 'Joined to branch';
             $details = 'Joined to branch ' . $targetName;
             break;
         case CRM_Pcpteams_Constant::C_AT_TRIBUTE_JOIN:
             $subject = 'Joined to tribute contact';
             $details = 'Joined to tribute ' . $params['reason'] . ' of ' . $targetName;
             unset($params['reason']);
             break;
         case CRM_Pcpteams_Constant::C_AT_PCP_CREATED:
             $subject = 'New PCP has created';
             $details = "New PCP has created";
             break;
         case CRM_Pcpteams_Constant::C_AT_REQ_AUTHORISED:
             $subject = 'Team request authorised';
             $details = "Member join team request has authorised";
             break;
         case CRM_Pcpteams_Constant::C_AT_REQ_DECLINED:
             $subject = 'Team request rejected';
             $details = "Member join team request has declined";
             break;
         case CRM_Pcpteams_Constant::C_AT_REQ_MADE:
             $subject = 'Team Member Requires Authorisation';
             $details = "Member join team request made by" . $sourceName . ' to ' . $targetName;
             break;
         case CRM_Pcpteams_Constant::C_AT_LEAVE_TEAM:
             $subject = 'PCP member left team';
             $details = "PCP member left team " . $targetName;
             break;
         default:
             $subject = $activityname;
             $details = $activityname;
             break;
     }
     $activityTypeID = CRM_Pcpteams_Utils::getActivityTypeId($activityname);
     if ($activityTypeID) {
         $activityParams = array('activity_type_id' => $activityTypeID, 'subject' => $subject, 'details' => $details, 'activity_date_time' => date('YmdHis'), 'status_id' => 2, 'version' => 3);
         $activityParams = array_merge($activityParams, $params);
         return civicrm_api('Activity', 'create', $activityParams);
     }
 }