in server/src/main/java/com/epam/indigoeln/core/service/dashboard/DashboardService.java [288:347]
private DashboardRowDTO convert(
Triple<Document, Document, Document> t,
Map<Object, Document> components,
Map<Object, Document> users,
Map<String, SignatureService.Document> documents) {
val project = t.getLeft();
val notebook = t.getMiddle();
val experiment = t.getRight();
val result = new DashboardRowDTO();
result.setProjectId(SequenceIdUtil.extractShortId(String.valueOf(project.get("_id"))));
result.setNotebookId(SequenceIdUtil.extractShortId(String.valueOf(notebook.get("_id"))));
result.setExperimentId(SequenceIdUtil.extractShortId(String.valueOf(experiment.get("_id"))));
result.setId(notebook.get("name") + "-" + experiment.get("name"));
result.setStatus(ExperimentStatus.fromValue(String.valueOf(experiment.get("status"))));
result.setProject(String.valueOf(project.get("name")));
result.setCreationDate(JSR310DateConverters.DateToZonedDateTimeConverter.INSTANCE.convert((Date) experiment.get("creationDate")));
result.setLastEditDate(JSR310DateConverters.DateToZonedDateTimeConverter.INSTANCE.convert((Date) experiment.get("lastEditDate")));
val title = getExperimentDetailsValue(experiment, Arrays.asList("reactionDetails", "conceptDetails"), "title", components);
result.setName(title == null ? null : String.valueOf(title));
val reactionImage = getExperimentDetailsValue(experiment, Collections.singletonList("reaction"), "image", components);
result.setReactionImage(reactionImage == null ? null : String.valueOf(reactionImage));
if (documents != null && experiment.get("documentId") != null) {
val document = documents.get(experiment.get("documentId"));
if (document != null) {
result.setWitnesses(
document.getWitnesses().stream()
.map(u -> new DashboardRowDTO.UserDTO(u.getFirstName(), u.getLastName()))
.collect(Collectors.toList()));
result.setComments(
document.getWitnesses().stream()
.map(SignatureService.User::getComment)
.collect(Collectors.toList()));
}
}
result.setAuthor(getUserDTO(experiment, "author", users));
result.setSubmitter(getUserDTO(experiment, "submittedBy", users));
val coAuthors = getExperimentDetailsValue(experiment, Arrays.asList("reactionDetails", "conceptDetails"), "coAuthors", components);
if (coAuthors instanceof Iterable) {
val ca = new ArrayList<String>();
((Iterable) coAuthors).forEach(c -> {
if (c != null) {
ca.add(String.valueOf(c));
}
});
result.setCoAuthors(ca);
}
return result;
}