Code Duplication    Length = 48-48 lines in 2 locations

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

@@ 95-142 (lines=48) @@
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
				$backend = $this->resourceManager->getBackend($backendId);
117
				if ($backend === null) {
118
					continue;
119
				}
120
121
				$resource = $backend->getResource($newResource);
122
				$this->addToCache($this->resourceDbTable, $resource);
123
			}
124
		}
125
		foreach($sortedResources['deleted'] as $backendId => $deletedResources) {
126
			foreach ($deletedResources as $deletedResource) {
127
				$this->deleteFromCache($this->resourceDbTable,
128
					$this->resourcePrincipalUri, $backendId, $deletedResource);
129
			}
130
		}
131
		foreach($sortedResources['edited'] as $backendId => $editedResources) {
132
			foreach ($editedResources as $editedResource) {
133
				$backend = $this->resourceManager->getBackend($backendId);
134
				if ($backend === null) {
135
					continue;
136
				}
137
138
				$resource = $backend->getResource($editedResource);
139
				$this->updateCache($this->resourceDbTable, $resource);
140
			}
141
		}
142
	}
143
144
	/**
145
	 * run timed job for rooms
@@ 147-194 (lines=48) @@
144
	/**
145
	 * run timed job for rooms
146
	 */
147
	private function runRooms() {
148
		$roomBackends = $this->roomManager->getBackends();
149
		$cachedRooms = $this->getCached($this->roomDbTable);
150
		$cachedRoomIds = $this->getCachedRoomIds($cachedRooms);
151
152
		$remoteRoomIds = [];
153
		foreach($roomBackends as $roomBackend) {
154
			try {
155
				$remoteRoomIds[$roomBackend->getBackendIdentifier()] =
156
					$roomBackend->listAllRooms();
157
			} catch(BackendTemporarilyUnavailableException $ex) {
158
				// If the backend is temporarily unavailable
159
				// ignore this backend in this execution
160
				unset($cachedRoomIds[$roomBackend->getBackendIdentifier()]);
161
			}
162
		}
163
164
		$sortedRooms = $this->sortByNewDeletedExisting($cachedRoomIds, $remoteRoomIds);
165
166
		foreach($sortedRooms['new'] as $backendId => $newRooms) {
167
			foreach ($newRooms as $newRoom) {
168
				$backend = $this->roomManager->getBackend($backendId);
169
				if ($backend === null) {
170
					continue;
171
				}
172
173
				$resource = $backend->getRoom($newRoom);
174
				$this->addToCache($this->roomDbTable, $resource);
175
			}
176
		}
177
		foreach($sortedRooms['deleted'] as $backendId => $deletedRooms) {
178
			foreach ($deletedRooms as $deletedRoom) {
179
				$this->deleteFromCache($this->roomDbTable,
180
					$this->roomPrincipalUri, $backendId, $deletedRoom);
181
			}
182
		}
183
		foreach($sortedRooms['edited'] as $backendId => $editedRooms) {
184
			foreach ($editedRooms as $editedRoom) {
185
				$backend = $this->roomManager->getBackend($backendId);
186
				if ($backend === null) {
187
					continue;
188
				}
189
190
				$resource = $backend->getRoom($editedRoom);
191
				$this->updateCache($this->roomDbTable, $resource);
192
			}
193
		}
194
	}
195
196
	/**
197
	 * get cached db rows for resources / rooms