public static WorksetDto asDto(@Nonnull Workset from) { WorksetDto dto = new WorksetDto(); dto.setId(from.getId()); dto.setAlias(from.getAlias()); dto.setDescription(from.getDescription()); if (!from.getSamples().isEmpty()) { dto.setSampleIds(from.getSamples().stream().map(Identifiable::getId).collect(Collectors.toList())); } if (!from.getLibraries().isEmpty()) { dto.setLibraryIds(from.getLibraries().stream().map(Identifiable::getId).collect(Collectors.toList())); } if (!from.getDilutions().isEmpty()) { dto.setDilutionIds(from.getDilutions().stream().map(Identifiable::getId).collect(Collectors.toList())); } dto.setCreator(from.getCreator().getFullName()); dto.setLastModified(formatDateTime(from.getLastModified())); return dto; }
@Override public void beforeDelete(Sample object) throws IOException { List<Workset> worksets = worksetService.listBySample(object.getId()); for (Workset workset : worksets) { workset.getSamples().removeIf(sam -> sam.getId() == object.getId()); worksetService.save(workset); } Box box = object.getBox(); if (box != null) { box.getBoxPositions().remove(object.getBoxPosition()); boxService.save(box); } }
private void applyMemberChanges(Workset changed, Workset managed) { applyMemberChanges(changed.getSamples(), managed.getSamples(), WhineyFunction.rethrow(ids -> sampleService.listByIdList(ids))); applyMemberChanges(changed.getLibraries(), managed.getLibraries(), WhineyFunction.rethrow(ids -> libraryService.listByIdList(ids))); applyMemberChanges(changed.getDilutions(), managed.getDilutions(), WhineyFunction.rethrow(ids -> dilutionService.listByIdList(ids))); }
private void loadMembers(Workset newWorkflow) { newWorkflow.setSamples(loadMembers("Sample", newWorkflow.getSamples(), WhineyFunction.rethrow(id -> sampleService.get(id)))); newWorkflow.setLibraries(loadMembers("Library", newWorkflow.getLibraries(), WhineyFunction.rethrow(id -> libraryService.get(id)))); newWorkflow.setDilutions(loadMembers("Dilution", newWorkflow.getDilutions(), WhineyFunction.rethrow(id -> dilutionService.get(id)))); }