/** * @param Mark $mark * @param null $oldMark */ public function __construct(Mark $mark, $oldMark = null) { $result = $mark->getResult(); $receiverUser = $mark->getUser(); $details = ['receiverUser' => ['firstName' => $receiverUser->getFirstName(), 'lastName' => $receiverUser->getLastName(), 'username' => $receiverUser->getUsername()], 'result' => $mark->getValue(), 'update' => $oldMark !== null, 'mark' => ['id' => $mark->getId(), 'value' => $mark->getValue(), 'oldValue' => $oldMark]]; parent::__construct($result->getResourceNode(), $details); $this->setReceiver($receiverUser); }
/** * Updates a mark. * * @param Mark $mark * @param string $value */ public function updateMark(Mark $mark, $value) { $oldMark = $mark->getValue(); $mark->setValue($value); $this->om->flush(); // First of all update older mark events so as result would be new value $this->updateNewMarkEventResult($mark->getUser(), $mark->getId(), $value); // Then create new mark event to log update $newMarkEvent = new LogResultsNewMarkEvent($mark, $oldMark); $this->dispatcher->dispatch('log', $newMarkEvent); }