public static function labelChange(MetadataModified $event) { $resource = $event->getResource(); $service = ServiceManager::getServiceManager()->get(DeliveryMonitoringService::CONFIG_ID); if ($resource->hasType(new \core_kernel_classes_Class(CLASS_COMPILEDDELIVERY)) && RDFS_LABEL === $event->getMetadataUri()) { $deliveryExecutionsData = $service->find([DeliveryMonitoringService::DELIVERY_ID => $resource->getUri()], []); foreach ($deliveryExecutionsData as $data) { $data->updateData([DeliveryMonitoringService::DELIVERY_NAME]); $success = $service->save($data); if (!$success) { \common_Logger::w('monitor cache for delivery ' . $data[DeliveryMonitoringService::DELIVERY_EXECUTION_ID] . ' could not be updated. Label has not been changed'); } } } }
public static function propertyChange(MetadataModified $event) { $resource = $event->getResource(); $service = ServiceManager::getServiceManager()->get(DeliveryMonitoringService::CONFIG_ID); $tracked = array_merge([PROPERTY_USER_FIRSTNAME, PROPERTY_USER_LASTNAME], array_map(function ($field) { return $field['property']->getUri(); }, DeliveryHelper::getExtraFieldsProperties())); if (in_array($event->getMetadataUri(), $tracked) && $resource->hasType(new \core_kernel_classes_Class(TAO_CLASS_SUBJECT))) { $deliveryExecutionsData = $service->find([DeliveryMonitoringService::TEST_TAKER => $resource->getUri()], []); foreach ($deliveryExecutionsData as $data) { $data->updateData([DeliveryMonitoringService::TEST_TAKER, DeliveryMonitoringService::TEST_TAKER_FIRST_NAME, DeliveryMonitoringService::TEST_TAKER_LAST_NAME]); $success = $service->save($data); if (!$success) { \common_Logger::w('monitor cache for delivery ' . $data[DeliveryMonitoringService::DELIVERY_EXECUTION_ID] . ' could not be updated. TestTaker data has not been changed'); } } } }