internal static ReadFeedResponse <TInput> CreateResponse <TInput>(
            ResponseMessage responseMessage,
            CosmosSerializerCore serializerCore,
            Documents.ResourceType resourceType)
        {
            using (responseMessage)
            {
                responseMessage.EnsureSuccessStatusCode();

                CosmosArray cosmosArray = null;
                if (responseMessage.Content != null)
                {
                    cosmosArray = CosmosElementSerializer.ToCosmosElements(
                        responseMessage.Content,
                        resourceType,
                        null);
                }

                ReadFeedResponse <TInput> readFeedResponse = new ReadFeedResponse <TInput>(
                    httpStatusCode: responseMessage.StatusCode,
                    cosmosArray: cosmosArray,
                    serializerCore: serializerCore,
                    responseMessageHeaders: responseMessage.Headers,
                    diagnostics: responseMessage.Diagnostics);

                return(readFeedResponse);
            }
        }
        internal static ReadFeedResponse <TInput> CreateResponse <TInput>(
            ResponseMessage responseMessage,
            CosmosSerializerCore serializerCore,
            Documents.ResourceType resourceType)
        {
            using (responseMessage)
            {
                // ReadFeed can return 304 on some scenarios (Change Feed for example)
                if (responseMessage.StatusCode != HttpStatusCode.NotModified)
                {
                    responseMessage.EnsureSuccessStatusCode();
                }

                CosmosArray cosmosArray = null;
                if (responseMessage.Content != null)
                {
                    cosmosArray = CosmosElementSerializer.ToCosmosElements(
                        responseMessage.Content,
                        resourceType,
                        null);
                }

                ReadFeedResponse <TInput> readFeedResponse = new ReadFeedResponse <TInput>(
                    httpStatusCode: responseMessage.StatusCode,
                    cosmosArray: cosmosArray,
                    serializerCore: serializerCore,
                    responseMessageHeaders: responseMessage.Headers,
                    diagnostics: responseMessage.Diagnostics);

                return(readFeedResponse);
            }
        }
Exemplo n.º 3
0
 private FeedResponse <T> CreateChangeFeedResponseHelper <T>(
     ResponseMessage cosmosResponseMessage)
 {
     return(ReadFeedResponse <T> .CreateResponse <T>(
                cosmosResponseMessage,
                this.serializerCore));
 }
        internal static ReadFeedResponse <TInput> CreateResponse <TInput>(
            ResponseMessage responseMessage,
            CosmosSerializerCore serializerCore)
        {
            using (responseMessage)
            {
                // ReadFeed can return 304 on Change Feed responses
                if (responseMessage.StatusCode != HttpStatusCode.NotModified)
                {
                    responseMessage.EnsureSuccessStatusCode();
                }

                IReadOnlyCollection <TInput> resources = CosmosFeedResponseSerializer.FromFeedResponseStream <TInput>(
                    serializerCore,
                    responseMessage.Content);

                ReadFeedResponse <TInput> readFeedResponse = new ReadFeedResponse <TInput>(
                    httpStatusCode: responseMessage.StatusCode,
                    resources: resources,
                    resourceCount: resources.Count,
                    responseMessageHeaders: responseMessage.Headers,
                    diagnostics: responseMessage.Diagnostics);

                return(readFeedResponse);
            }
        }
Exemplo n.º 5
0
 private FeedResponse <T> CreateChangeFeedResponseHelper <T>(
     ResponseMessage cosmosResponseMessage,
     Documents.ResourceType resourceType)
 {
     return(ReadFeedResponse <T> .CreateResponse <T>(
                cosmosResponseMessage,
                this.serializerCore,
                resourceType));
 }
Exemplo n.º 6
0
 private FeedResponse <T> CreateChangeFeedResponseHelper <T>(
     ResponseMessage cosmosResponseMessage)
 {
     using (cosmosResponseMessage.Trace.StartChild("ChangeFeed Response Serialization"))
     {
         return(ReadFeedResponse <T> .CreateResponse <T>(
                    cosmosResponseMessage,
                    this.serializerCore));
     }
 }
        internal static ReadFeedResponse <TInput> CreateResponse <TInput>(
            Headers responseMessageHeaders,
            ICollection <TInput> resources,
            bool hasMoreResults)
        {
            ReadFeedResponse <TInput> readFeedResponse = new ReadFeedResponse <TInput>(
                resource: resources,
                responseMessageHeaders: responseMessageHeaders);

            return(readFeedResponse);
        }
        internal static ReadFeedResponse <TInput> CreateResponse <TInput>(
            CosmosResponseMessageHeaders responseMessageHeaders,
            IEnumerable <TInput> resources,
            bool hasMoreResults)
        {
            ReadFeedResponse <TInput> readFeedResponse = new ReadFeedResponse <TInput>(
                resource: resources,
                responseMessageHeaders: responseMessageHeaders,
                hasMoreResults: hasMoreResults);

            return(readFeedResponse);
        }
Exemplo n.º 9
0
        private FeedResponse <T> CreateQueryFeedResponseHelper <T>(
            ResponseMessage cosmosResponseMessage)
        {
            if (cosmosResponseMessage is QueryResponse queryResponse)
            {
                return(QueryResponse <T> .CreateResponse <T>(
                           cosmosQueryResponse : queryResponse,
                           serializerCore : this.serializerCore));
            }

            return(ReadFeedResponse <T> .CreateResponse <T>(
                       cosmosResponseMessage,
                       this.serializerCore));
        }
        internal static ReadFeedResponse <TInput> CreateResponse <TInput>(
            Headers responseMessageHeaders,
            Stream stream,
            CosmosSerializer jsonSerializer,
            bool hasMoreResults)
        {
            using (stream)
            {
                CosmosFeedResponseUtil <TInput> response         = jsonSerializer.FromStream <CosmosFeedResponseUtil <TInput> >(stream);
                IEnumerable <TInput>            resources        = response.Data;
                ReadFeedResponse <TInput>       readFeedResponse = new ReadFeedResponse <TInput>(
                    resource: resources,
                    responseMessageHeaders: responseMessageHeaders,
                    hasMoreResults: hasMoreResults);

                return(readFeedResponse);
            }
        }
Exemplo n.º 11
0
        private FeedResponse <T> CreateQueryFeedResponseHelper <T>(
            ResponseMessage cosmosResponseMessage,
            Documents.ResourceType resourceType)
        {
            QueryResponse queryResponse = cosmosResponseMessage as QueryResponse;

            if (queryResponse != null)
            {
                return(QueryResponse <T> .CreateResponse <T>(
                           cosmosQueryResponse : queryResponse,
                           serializerCore : this.serializerCore));
            }

            return(ReadFeedResponse <T> .CreateResponse <T>(
                       cosmosResponseMessage,
                       this.serializerCore,
                       resourceType));
        }
Exemplo n.º 12
0
        internal FeedResponse <T> CreateQueryFeedResponse <T>(
            ResponseMessage cosmosResponseMessage)
        {
            //Throw the exception
            cosmosResponseMessage.EnsureSuccessStatusCode();

            QueryResponse queryResponse = cosmosResponseMessage as QueryResponse;

            if (queryResponse != null)
            {
                return(QueryResponse <T> .CreateResponse <T>(
                           responseMessage : queryResponse,
                           jsonSerializer : this.cosmosSerializer));
            }

            return(ReadFeedResponse <T> .CreateResponse <T>(
                       cosmosResponseMessage,
                       this.cosmosSerializer));
        }
        internal static ReadFeedResponse <TInput> CreateResponse <TInput>(
            ResponseMessage responseMessage,
            CosmosSerializer jsonSerializer)
        {
            using (responseMessage)
            {
                ICollection <TInput> resources = default(ICollection <TInput>);
                if (responseMessage.Content != null)
                {
                    CosmosFeedResponseUtil <TInput> response = jsonSerializer.FromStream <CosmosFeedResponseUtil <TInput> >(responseMessage.Content);
                    resources = response.Data;
                }

                ReadFeedResponse <TInput> readFeedResponse = new ReadFeedResponse <TInput>(
                    resource: resources,
                    responseMessageHeaders: responseMessage.Headers);

                return(readFeedResponse);
            }
        }
Exemplo n.º 14
0
        private FeedResponse <T> CreateQueryFeedResponseHelper <T>(
            ResponseMessage cosmosResponseMessage)
        {
            if (cosmosResponseMessage is QueryResponse queryResponse)
            {
                using (cosmosResponseMessage.Trace.StartChild("Query Response Serialization"))
                {
                    return(QueryResponse <T> .CreateResponse <T>(
                               cosmosQueryResponse : queryResponse,
                               serializerCore : this.serializerCore));
                }
            }

            using (cosmosResponseMessage.Trace.StartChild("Feed Response Serialization"))
            {
                return(ReadFeedResponse <T> .CreateResponse <T>(
                           cosmosResponseMessage,
                           this.serializerCore));
            }
        }
Exemplo n.º 15
0
        private FeedResponse <T> CreateQueryFeedResponseHelper <T>(
            ResponseMessage cosmosResponseMessage,
            Documents.ResourceType resourceType)
        {
            //Throw the exception
            cosmosResponseMessage.EnsureSuccessStatusCode();

            QueryResponse queryResponse = cosmosResponseMessage as QueryResponse;

            if (queryResponse != null)
            {
                return(QueryResponse <T> .CreateResponse <T>(
                           cosmosQueryResponse : queryResponse,
                           serializerCore : this.serializerCore));
            }

            return(ReadFeedResponse <T> .CreateResponse <T>(
                       cosmosResponseMessage,
                       this.serializerCore,
                       resourceType));
        }
Exemplo n.º 16
0
        internal static ReadFeedResponse <TInput> CreateResponse <TInput>(
            ResponseMessage responseMessage,
            CosmosSerializerCore serializerCore)
        {
            using (responseMessage)
            {
                responseMessage.EnsureSuccessStatusCode();

                IReadOnlyCollection <TInput> resources = CosmosFeedResponseSerializer.FromFeedResponseStream <TInput>(
                    serializerCore,
                    responseMessage.Content);

                ReadFeedResponse <TInput> readFeedResponse = new ReadFeedResponse <TInput>(
                    httpStatusCode: responseMessage.StatusCode,
                    resources: resources,
                    responseMessageHeaders: responseMessage.Headers,
                    diagnostics: responseMessage.Diagnostics);

                return(readFeedResponse);
            }
        }
        private FeedResponse <T> CreateQueryFeedResponseHelper <T>(
            ResponseMessage cosmosResponseMessage,
            bool usePropertySerializer)
        {
            //Throw the exception
            cosmosResponseMessage.EnsureSuccessStatusCode();

            // The property serializer should be used for internal
            // query operations like throughput since user serializer can break the logic
            CosmosSerializer serializer = usePropertySerializer ? this.propertiesSerializer : this.cosmosSerializer;

            QueryResponse queryResponse = cosmosResponseMessage as QueryResponse;

            if (queryResponse != null)
            {
                return(QueryResponse <T> .CreateResponse <T>(
                           cosmosQueryResponse : queryResponse,
                           jsonSerializer : serializer));
            }

            return(ReadFeedResponse <T> .CreateResponse <T>(
                       cosmosResponseMessage,
                       serializer));
        }