public function deleteDuplicatedOldOrderedTools() { $usersOts = $this->orderedToolRepo->findDuplicatedOldOrderedToolsByUsers(); $wsOts = $this->orderedToolRepo->findDuplicatedOldOrderedToolsByWorkspaces(); $exitingUsers = array(); foreach ($usersOts as $ot) { $toolId = $ot->getTool()->getId(); $userId = $ot->getUser()->getId(); if (isset($exitingUsers[$toolId])) { if (isset($exitingUsers[$toolId][$userId])) { $this->om->remove($ot); } else { $exitingUsers[$toolId][$userId] = true; } } else { $exitingUsers[$toolId] = array(); $exitingUsers[$toolId][$userId] = true; } } $this->om->flush(); $exitingWorkspaces = array(); foreach ($wsOts as $ot) { $toolId = $ot->getTool()->getId(); $workspaceId = $ot->getWorkspace()->getId(); if (isset($exitingWorkspaces[$toolId])) { if (isset($exitingWorkspaces[$toolId][$workspaceId])) { $this->om->remove($ot); } else { $exitingWorkspaces[$toolId][$workspaceId] = true; } } else { $exitingWorkspaces[$toolId] = array(); $exitingWorkspaces[$toolId][$workspaceId] = true; } } $this->om->flush(); }