private ImportSummaries handleEvents( Enrollment enrollment, ProgramInstance programInstance, ImportOptions importOptions ) { List<Event> create = new ArrayList<>(); List<Event> update = new ArrayList<>(); List<String> delete = new ArrayList<>(); for ( Event event : enrollment.getEvents() ) { event.setEnrollment( enrollment.getEnrollment() ); event.setProgram( programInstance.getProgram().getUid() ); event.setTrackedEntityInstance( enrollment.getTrackedEntityInstance() ); if ( importOptions.getImportStrategy().isSync() && event.isDeleted() ) { delete.add( event.getEvent() ); } else if ( !programStageInstanceService.programStageInstanceExists( event.getEvent() ) ) { create.add( event ); } else { update.add( event ); } } ImportSummaries importSummaries = new ImportSummaries(); importSummaries.addImportSummaries( eventService.addEvents( create, importOptions, false ) ); importSummaries.addImportSummaries( eventService.updateEvents( update, importOptions, false, false ) ); importSummaries.addImportSummaries( eventService.deleteEvents( delete, false ) ); return importSummaries; }
@Override public ImportSummary deleteEvent( String uid ) { boolean existsEvent = programStageInstanceService.programStageInstanceExists( uid ); if ( existsEvent ) { ProgramStageInstance programStageInstance = programStageInstanceService.getProgramStageInstance( uid ); List<String> errors = trackerAccessManager.canWrite( currentUserService.getCurrentUser(), programStageInstance ); if ( !errors.isEmpty() ) { return new ImportSummary( ImportStatus.ERROR, errors.toString() ).incrementIgnored(); } programStageInstanceService.deleteProgramStageInstance( programStageInstance ); if ( programStageInstance.getProgramStage().getProgram().isRegistration() ) { entityInstanceService.updateTrackedEntityInstance( programStageInstance.getProgramInstance().getEntityInstance() ); } return new ImportSummary( ImportStatus.SUCCESS, "Deletion of event " + uid + " was successful" ).incrementDeleted(); } else { return new ImportSummary( ImportStatus.SUCCESS, "Event " + uid + " cannot be deleted as it is not present in the system" ).incrementIgnored(); } }