public static function create(
        $body,
        array $operations,
        array $contexts,
        IODataReaderWriter $odataSerializer,
        IMimeReaderWriter $mimeSerializer
    ) {
        $result       = new BatchResult();
        $responses    = self::_constructResponses($body, $mimeSerializer);
        $callbackName = __CLASS__ . '::_compareUsingContentId';
        $count        = count($responses);
        $entries      = array();
        // Sort $responses based on Content-ID so they match order of $operations.
        uasort($responses, $callbackName);

        for ($i = 0; $i < $count; $i++) {
            $context   = $contexts[$i];
            $response  = $responses[$i];
            $operation = $operations[$i];
            $type      = $operation->getType();
            $body      = $response->body;
            $headers   = HttpFormatter::formatHeaders($response->headers);

            //Throw the error directly if error occurs in the batch operation.
            ServiceRestProxy::throwIfError(
                new Response(
                    $response->statusCode,
                    $response->headers,
                    $response->body,
                    $response->version,
                    $response->reason
                ),
                $context->getStatusCodes()
            );

            switch ($type) {
                case BatchOperationType::INSERT_ENTITY_OPERATION:
                    $entries[] = InsertEntityResult::create(
                        $body,
                        $headers,
                        $odataSerializer
                    );
                    break;
                case BatchOperationType::UPDATE_ENTITY_OPERATION:
                case BatchOperationType::MERGE_ENTITY_OPERATION:
                case BatchOperationType::INSERT_REPLACE_ENTITY_OPERATION:
                case BatchOperationType::INSERT_MERGE_ENTITY_OPERATION:
                    $entries[] = UpdateEntityResult::create($headers);
                    break;
                case BatchOperationType::DELETE_ENTITY_OPERATION:
                    $entries[] = Resources::BATCH_ENTITY_DEL_MSG;
                    break;
                default:
                    throw new \InvalidArgumentException();
            }
        }

        $result->setEntries($entries);

        return $result;
    }
public static function create(
        $body,
        array $operations,
        array $contexts,
        IODataReaderWriter $odataSerializer,
        IMimeReaderWriter $mimeSerializer
    ) {
        $result       = new BatchResult();
        $responses    = self::_constructResponses($body, $mimeSerializer);
        $callbackName = __CLASS__ . '::_compareUsingContentId';
        $count        = count($responses);
        $entries      = array();
        // Sort $responses based on Content-ID so they match order of $operations.
        uasort($responses, $callbackName);

        for ($i = 0; $i < $count; $i++) {
            $context   = $contexts[$i];
            $response  = $responses[$i];
            $operation = $operations[$i];
            $type      = $operation->getType();
            $body      = $response->body;
            $headers   = HttpFormatter::formatHeaders($response->headers);

            //Throw the error directly if error occurs in the batch operation.
            ServiceRestProxy::throwIfError(
                new Response(
                    $response->statusCode,
                    $response->headers,
                    $response->body,
                    $response->version,
                    $response->reason
                ),
                $context->getStatusCodes()
            );

            switch ($type) {
                case BatchOperationType::INSERT_ENTITY_OPERATION:
                    $entries[] = InsertEntityResult::create(
                        $body,
                        $headers,
                        $odataSerializer
                    );
                    break;
                case BatchOperationType::UPDATE_ENTITY_OPERATION:
                case BatchOperationType::MERGE_ENTITY_OPERATION:
                case BatchOperationType::INSERT_REPLACE_ENTITY_OPERATION:
                case BatchOperationType::INSERT_MERGE_ENTITY_OPERATION:
                    $entries[] = UpdateEntityResult::create($headers);
                    break;
                case BatchOperationType::DELETE_ENTITY_OPERATION:
                    $entries[] = Resources::BATCH_ENTITY_DEL_MSG;
                    break;
                default:
                    throw new \InvalidArgumentException();
            }
        }

        $result->setEntries($entries);

        return $result;
    }
public static function create ( $ body , array $ operations , array $ contexts , IODataReaderWriter $ odataSerializer , IMimeReaderWriter $ mimeSerializer ) { $ result = new BatchResult ( ) ; $ responses = self :: _constructResponses ( $ body , $ mimeSerializer ) ; $ callbackName = __CLASS__ . '::_compareUsingContentId' ; $ count = count ( $ responses ) ; $ entries = array ( ) ; // Sort $responses based on Content-ID so they match order of $operations. uasort ( $ responses , $ callbackName ) ; for ( $ i = 0 ; $ i < $ count ; $ i ++ ) { $ context = $ contexts [ $ i ] ; $ response = $ responses [ $ i ] ; $ operation = $ operations [ $ i ] ; $ type = $ operation -> getType ( ) ; $ body = $ response -> body ; $ headers = HttpFormatter :: formatHeaders ( $ response -> headers ) ; //Throw the error directly if error occurs in the batch operation. ServiceRestProxy :: throwIfError ( new Response ( $ response -> statusCode , $ response -> headers , $ response -> body , $ response -> version , $ response -> reason ) , $ context -> getStatusCodes ( ) ) ; switch ( $ type ) { case BatchOperationType :: INSERT_ENTITY_OPERATION : $ entries [ ] = InsertEntityResult :: create ( $ body , $ headers , $ odataSerializer ) ; break ; case BatchOperationType :: UPDATE_ENTITY_OPERATION : case BatchOperationType :: MERGE_ENTITY_OPERATION : case BatchOperationType :: INSERT_REPLACE_ENTITY_OPERATION : case BatchOperationType :: INSERT_MERGE_ENTITY_OPERATION : $ entries [ ] = UpdateEntityResult :: create ( $ headers ) ; break ; case BatchOperationType :: DELETE_ENTITY_OPERATION : $ entries [ ] = Resources :: BATCH_ENTITY_DEL_MSG ; break ; default : throw new \ InvalidArgumentException ( ) ; } } $ result -> setEntries ( $ entries ) ; return $ result ; }
Creates BatchResult object.

@param string             $body            The HTTP response body.
@param array              $operations      The batch operations.
@param array              $contexts        The batch operations context.
@param IODataReaderWriter $odataSerializer The OData reader and writer.
@param IMimeReaderWriter  $mimeSerializer  The MIME reader and writer.

@return \MicrosoftAzure\Storage\Table\Models\BatchResult

@throws \InvalidArgumentException
Creates BatchResult object .