Code Duplication    Length = 15-17 lines in 2 locations

services/NorthWind/NorthWindQueryProvider.php 2 locations

@@ 308-322 (lines=15) @@
305
        $srcClass = get_class($sourceEntityInstance);
306
        $navigationPropName = $targetProperty->getName();
307
        if ($srcClass === 'Customer') {
308
            if ($navigationPropName === 'Orders') {
309
                $query = "SELECT * FROM Orders WHERE CustomerID = '$sourceEntityInstance->CustomerID'";
310
                if ($filterOption != null) {
311
                    $query .= ' AND ' . $filterOption;
312
                }
313
                $stmt = sqlsrv_query($this->_connectionHandle, $query);
314
                if ($stmt === false) {
315
                    $errorAsString = self::_getSQLSRVError();
316
                    throw ODataException::createInternalServerError($errorAsString);
317
                }
318
319
                $result = $this->_serializeOrders($stmt);
320
            } else {
321
                die('Customer does not have navigation porperty with name: ' . $navigationPropName);
322
            }
323
        } elseif ($srcClass === 'Order') {
324
            if ($navigationPropName === 'Order_Details') {
325
                $query = "SELECT * FROM [Order Details] WHERE OrderID = $sourceEntityInstance->OrderID";
@@ 323-339 (lines=17) @@
320
            } else {
321
                die('Customer does not have navigation porperty with name: ' . $navigationPropName);
322
            }
323
        } elseif ($srcClass === 'Order') {
324
            if ($navigationPropName === 'Order_Details') {
325
                $query = "SELECT * FROM [Order Details] WHERE OrderID = $sourceEntityInstance->OrderID";
326
                if ($filterOption != null) {
327
                    $query .= ' AND ' . $filterOption;
328
                }
329
                $stmt = sqlsrv_query($this->_connectionHandle, $query);
330
                if ($stmt === false) {
331
                    $errorAsString = self::_getSQLSRVError();
332
                    throw ODataException::createInternalServerError($errorAsString);
333
                }
334
335
                $result = $this->_serializeOrderDetails($stmt);
336
            } else {
337
                die('Order does not have navigation porperty with name: ' . $navigationPropName);
338
            }
339
        }
340
341
        return $result;
342
    }