diff --git a/shared/common/src/main/kotlin/no/iktdev/mediaprocessing/shared/common/projection/TaskProjection.kt b/shared/common/src/main/kotlin/no/iktdev/mediaprocessing/shared/common/projection/TaskProjection.kt index 5e9f4ac3..16c85116 100644 --- a/shared/common/src/main/kotlin/no/iktdev/mediaprocessing/shared/common/projection/TaskProjection.kt +++ b/shared/common/src/main/kotlin/no/iktdev/mediaprocessing/shared/common/projection/TaskProjection.kt @@ -16,12 +16,11 @@ class TaskProjection(val events: List) { val createdEvent = events.getInstancesOf().ifEmpty { return TaskStatus.NotInitiated } val resultEvent = events.getInstancesOf().ifEmpty { return TaskStatus.Pending } - if (resultEvent.size != createdEvent.size) return TaskStatus.Pending - val created = createdIds(createdEvent) val results = resultIds(resultEvent) - if (!created.all { it in results }) return TaskStatus.Pending + val taskIds = results.filter { it in created } + if (!taskIds.containsAll(created) || taskIds.size != created.size) return TaskStatus.Pending if (resultEvent.any { resultStatus(it) == no.iktdev.eventi.models.store.TaskStatus.Failed }) return TaskStatus.Failed return TaskStatus.Completed