From 5e0d28527295362f53d56db2365df4f53496d19b Mon Sep 17 00:00:00 2001 From: Andreas Svanberg <andreass@dsv.su.se> Date: Fri, 7 Feb 2025 12:34:54 +0100 Subject: [PATCH] Extract common functionality for both branches --- .../finalseminar/FinalSeminarServiceImpl.java | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/core/src/main/java/se/su/dsv/scipro/finalseminar/FinalSeminarServiceImpl.java b/core/src/main/java/se/su/dsv/scipro/finalseminar/FinalSeminarServiceImpl.java index 0af91dca55..54181242e3 100755 --- a/core/src/main/java/se/su/dsv/scipro/finalseminar/FinalSeminarServiceImpl.java +++ b/core/src/main/java/se/su/dsv/scipro/finalseminar/FinalSeminarServiceImpl.java @@ -3,6 +3,7 @@ package se.su.dsv.scipro.finalseminar; import com.google.common.eventbus.EventBus; import com.querydsl.core.BooleanBuilder; import com.querydsl.core.types.dsl.BooleanExpression; +import com.querydsl.core.types.dsl.Expressions; import jakarta.inject.Inject; import jakarta.inject.Provider; import jakarta.persistence.EntityManager; @@ -542,19 +543,15 @@ public class FinalSeminarServiceImpl extends AbstractServiceImpl<FinalSeminar, L private BooleanExpression unfinishedSeminars(Date after, Date before) { QFinalSeminar seminar = QFinalSeminar.finalSeminar; + BooleanExpression ungradedParticipant = Expressions.anyOf( + seminar.oppositions.any().grade.isNull(), + seminar.activeParticipations.any().grade.isNull(), + seminar.respondents.any().grade.isNull() + ); if (after == null && before == null) { - return seminar.oppositions - .any() - .grade.isNull() - .or(seminar.activeParticipations.any().grade.isNull().or(seminar.respondents.any().grade.isNull())); + return ungradedParticipant; } else { - return seminar.startDate - .between(after, before) - .andAnyOf( - seminar.oppositions.any().grade.isNull(), - seminar.activeParticipations.any().grade.isNull(), - seminar.respondents.any().grade.isNull() - ); + return seminar.startDate.between(after, before).and(ungradedParticipant); } }