Code Duplication    Length = 40-40 lines in 2 locations

apps/dav/lib/BackgroundJob/UpdateCalendarResourcesRoomsBackgroundJob.php 2 locations

@@ 95-134 (lines=40) @@
92
	/**
93
	 * run timed job for resources
94
	 */
95
	private function runResources() {
96
		$resourceBackends = $this->resourceManager->getBackends();
97
		$cachedResources = $this->getCached($this->resourceDbTable);
98
		$cachedResourceIds = $this->getCachedResourceIds($cachedResources);
99
100
		$remoteResourceIds = [];
101
		foreach($resourceBackends as $resourceBackend) {
102
			try {
103
				$remoteResourceIds[$resourceBackend->getBackendIdentifier()] =
104
					$resourceBackend->listAllResources();
105
			} catch(BackendTemporarilyUnavailableException $ex) {
106
				// If the backend is temporarily unavailable
107
				// ignore this backend in this execution
108
				unset($cachedResourceIds[$resourceBackend->getBackendIdentifier()]);
109
			}
110
		}
111
112
		$sortedResources = $this->sortByNewDeletedExisting($cachedResourceIds, $remoteResourceIds);
113
114
		foreach($sortedResources['new'] as $backendId => $newResources) {
115
			foreach ($newResources as $newResource) {
116
				$resource = $this->resourceManager->getBackend($backendId)
117
					->getResource($newResource);
118
				$this->addToCache($this->resourceDbTable, $resource);
119
			}
120
		}
121
		foreach($sortedResources['deleted'] as $backendId => $deletedResources) {
122
			foreach ($deletedResources as $deletedResource) {
123
				$this->deleteFromCache($this->resourceDbTable,
124
					$this->resourcePrincipalUri, $backendId, $deletedResource);
125
			}
126
		}
127
		foreach($sortedResources['edited'] as $backendId => $editedResources) {
128
			foreach ($editedResources as $editedResource) {
129
				$resource = $this->resourceManager->getBackend($backendId)
130
					->getResource($editedResource);
131
				$this->updateCache($this->resourceDbTable, $resource);
132
			}
133
		}
134
	}
135
136
	/**
137
	 * run timed job for rooms
@@ 139-178 (lines=40) @@
136
	/**
137
	 * run timed job for rooms
138
	 */
139
	private function runRooms() {
140
		$roomBackends = $this->roomManager->getBackends();
141
		$cachedRooms = $this->getCached($this->roomDbTable);
142
		$cachedRoomIds = $this->getCachedRoomIds($cachedRooms);
143
144
		$remoteRoomIds = [];
145
		foreach($roomBackends as $roomBackend) {
146
			try {
147
				$remoteRoomIds[$roomBackend->getBackendIdentifier()] =
148
					$roomBackend->listAllRooms();
149
			} catch(BackendTemporarilyUnavailableException $ex) {
150
				// If the backend is temporarily unavailable
151
				// ignore this backend in this execution
152
				unset($cachedRoomIds[$roomBackend->getBackendIdentifier()]);
153
			}
154
		}
155
156
		$sortedRooms = $this->sortByNewDeletedExisting($cachedRoomIds, $remoteRoomIds);
157
158
		foreach($sortedRooms['new'] as $backendId => $newRooms) {
159
			foreach ($newRooms as $newRoom) {
160
				$resource = $this->roomManager->getBackend($backendId)
161
					->getRoom($newRoom);
162
				$this->addToCache($this->roomDbTable, $resource);
163
			}
164
		}
165
		foreach($sortedRooms['deleted'] as $backendId => $deletedRooms) {
166
			foreach ($deletedRooms as $deletedRoom) {
167
				$this->deleteFromCache($this->roomDbTable,
168
					$this->roomPrincipalUri, $backendId, $deletedRoom);
169
			}
170
		}
171
		foreach($sortedRooms['edited'] as $backendId => $editedRooms) {
172
			foreach ($editedRooms as $editedRoom) {
173
				$resource = $this->roomManager->getBackend($backendId)
174
					->getRoom($editedRoom);
175
				$this->updateCache($this->roomDbTable, $resource);
176
			}
177
		}
178
	}
179
180
	/**
181
	 * get cached db rows for resources / rooms