public String addSorPerson( final ReconciliationCriteria reconciliationCriteria, final RequestContext context) { reconciliationCriteria.getSorPerson().setSourceSor(AbstractPersonServiceAction.STATIC_SOR_NAME); try { final ServiceExecutionResult<Person> result = getPersonService().addPerson(reconciliationCriteria); getSpringErrorValidationErrorConverter() .convertValidationErrors(result.getValidationErrors(), context.getMessageContext()); if (context.getMessageContext().hasErrorMessages()) { return "validationError"; } context.getFlowScope().put("serviceExecutionResult", result); return "success"; } catch (final ReconciliationException e) { context.getFlowScope().put("reconciliationResult", e); return "reconciliation"; } // TODO Need to add logic here to handle case where SoR already provided an SorPerson. // For example if OR is the SoR and reconciliation determines that OR // get the sorPerson that already exists from SorPersonAlreadyExistsException, update it with // the values from reconciliation.SorPerson // call updateSorPerson catch (final SorPersonAlreadyExistsException e) { return "error"; } }
public ServiceExecutionResult addSorPerson( final ReconciliationCriteria reconciliationCriteria, final MessageContext context) { reconciliationCriteria.getSorPerson().setSourceSor(AbstractPersonServiceAction.STATIC_SOR_NAME); final ServiceExecutionResult<Person> result = getPersonService().forceAddPerson(reconciliationCriteria); getSpringErrorValidationErrorConverter() .convertValidationErrors(result.getValidationErrors(), context); return result; }
public void setConfirmationMessage( final ServiceExecutionResult<Person> serviceExecutionResult, final ReconciliationResult reconciliationResult, final MessageContext context) { // if reconciliation result is EXACT or MAYBE then only a role was added, not a new person. // a force add, would result in no reconciliationResult. if (reconciliationResult != null) { if (reconciliationResult.getReconciliationType() == ReconciliationResult.ReconciliationType.EXACT || reconciliationResult.getReconciliationType() == ReconciliationResult.ReconciliationType.MAYBE) { context.addMessage(new MessageBuilder().info().code("roleAdded").build()); return; } } final Person person = serviceExecutionResult.getTargetObject(); final Identifier netId = person.getPrimaryIdentifiersByType().get(this.preferredPersonIdentifierType); if (person.getCurrentActivationKey() != null) { final MessageResolver message = new MessageBuilder() .info() .code("personAddedFinalConfirm") .arg(netId.getValue()) .arg(person.getCurrentActivationKey().asString()) .build(); context.addMessage(message); } else { context.addMessage( new MessageBuilder() .info() .code("personAddedFinalConfirm") .arg(netId.getValue()) .arg("TempKey") .build()); } }