From 2a5c49125dee4b0b7f839d2aad46f21667c6b63e 2017-12-20 10:58:07 From: mperrinel Date: 2017-12-20 10:58:07 Subject: [PATCH] Fix bug in discard method to handle repository --- diff --git a/core/src/Catalogue/CatalogueController.cpp b/core/src/Catalogue/CatalogueController.cpp index d0aa138..6ae79e0 100644 --- a/core/src/Catalogue/CatalogueController.cpp +++ b/core/src/Catalogue/CatalogueController.cpp @@ -196,18 +196,29 @@ void CatalogueController::discardEvent(std::shared_ptr event) auto uniqIdPredicate = std::make_shared( QString{"uniqId"}, event->getUniqId(), ComparaisonOperation::EQUALEQUAL); - auto repositoryPredicate = std::make_shared( + auto syncRepositoryPredicate = std::make_shared( QString{"repository"}, impl->toSyncRepository(event->getRepository()), ComparaisonOperation::EQUALEQUAL); - auto compCompoundPred = std::make_shared(CompoundOperation::AND); - compCompoundPred->AddRequestPredicate(uniqIdPredicate); - compCompoundPred->AddRequestPredicate(repositoryPredicate); + auto syncPred = std::make_shared(CompoundOperation::AND); + syncPred->AddRequestPredicate(uniqIdPredicate); + syncPred->AddRequestPredicate(syncRepositoryPredicate); - auto syncEvent = impl->m_CatalogueDao.getEvent(compCompoundPred); + auto workRepositoryPredicate = std::make_shared( + QString{"repository"}, impl->toWorkRepository(event->getRepository()), + ComparaisonOperation::EQUALEQUAL); + + auto workPred = std::make_shared(CompoundOperation::AND); + workPred->AddRequestPredicate(uniqIdPredicate); + workPred->AddRequestPredicate(workRepositoryPredicate); + + + auto syncEvent = impl->m_CatalogueDao.getEvent(syncPred); impl->m_CatalogueDao.copyEvent(syncEvent, impl->toWorkRepository(event->getRepository()), true); - *event = syncEvent; + + auto workEvent = impl->m_CatalogueDao.getEvent(workPred); + *event = workEvent; impl->m_EventKeysWithChanges.remove(impl->eventUniqueKey(event)); }