public function readAssignments($assignment)
 {
     try {
         $soap = $this->readLineItems(array('sourcedIdSet' => array('sourcedId' => $assignment->getAssignmentIds())));
         $response = new Response($this);
         if ($response->getStatus() == 'error') {
             throw new TurnitinSDKException($response->getStatusCode(), $response->getDescription());
         } else {
             $assignments = array();
             if (isset($soap->lineItemRecordSet->lineItemRecord)) {
                 if (!is_array($soap->lineItemRecordSet->lineItemRecord)) {
                     $soap->lineItemRecordSet->lineItemRecord = array($soap->lineItemRecordSet->lineItemRecord);
                 }
                 foreach ($soap->lineItemRecordSet->lineItemRecord as $lineitem) {
                     $tiiAssignment = new TiiAssignment();
                     $tiiAssignment->setAssignmentId($lineitem->sourcedGUID->sourcedId);
                     $tiiAssignment->setTitle($lineitem->lineItem->label);
                     $tiiAssignment->setClassId($lineitem->lineItem->context->contextIdentifier);
                     foreach ($lineitem->lineItem->extension->extensionField as $field) {
                         $name = $field->fieldName;
                         $method = 'set' . $name;
                         $value = $name == 'PeermarkAssignments' ? $this->peermarkJSONToObject($field->fieldValue) : $field->fieldValue;
                         if (is_callable(array($tiiAssignment, $method))) {
                             $tiiAssignment->{$method}($value);
                         }
                     }
                     $assignments[] = $tiiAssignment;
                 }
             }
             $response->setAssignments($assignments);
         }
         return $response;
     } catch (SoapFault $e) {
         throw new TurnitinSDKException($e->faultcode, $e->faultstring, parent::getLogPath());
     }
 }