public function update(BaseSubjectHandler $subjectHandler, CollectorFix $fix, AppliedChangesLogModel $log)
 {
     $data = $fix->getUpdateData();
     $result = $subjectHandler->applySnapshot($data, $fix->getDbVersion());
     $data = $subjectHandler->getSnapshot($result->getId());
     $log->description = $fix->getName();
     $log->originalData = array();
     $log->updateData = $data;
     return $result;
 }
 public function update(BaseSubjectHandler $subjectHandler, CollectorFix $fix, AppliedChangesLogModel $log)
 {
     $id = $fix->getUpdateData();
     $originalData = $subjectHandler->getSnapshot($id, $fix->getDbVersion());
     $result = $subjectHandler->delete($id, $fix->getDbVersion());
     $log->description = $fix->getName();
     $log->originalData = $originalData;
     $log->updateData = $id;
     return $result;
 }
 private function _applyReferenceFix(CollectorFix $fix)
 {
     $item = new ReferenceItem();
     $data = $fix->getUpdateData();
     $subject = $fix->getSubject() ?: self::REFERENCE_SUBJECT_ADD;
     $item->reference = $data['reference'];
     $item->id = $data['id'];
     $item->group = $data['group'];
     $item->dbVersion = $data['dbVersion'];
     if ($subject == self::REFERENCE_SUBJECT_ADD) {
         try {
             $this->_getReferenceController()->getReferenceValue($item->id, $item->group, $item->dbVersion);
             $this->_getReferenceController()->getItemCurrentVersionByReference($item->reference);
         } catch (\Exception $e) {
             $this->_getReferenceController()->registerItem($item);
         }
     }
     if ($subject == self::REFERENCE_SUBJECT_REMOVE) {
         $this->_getReferenceController()->removeItemById($item->id, $item->group, $item->dbVersion);
     }
 }