예제 #1
0
        internal static CosmosQueryResponseMessageHeaders ConvertToQueryHeaders(
            CosmosResponseMessageHeaders sourceHeaders,
            ResourceType resourceType,
            string containerRid)
        {
            if (sourceHeaders == null)
            {
                return(new CosmosQueryResponseMessageHeaders(
                           continauationToken: null,
                           disallowContinuationTokenMessage: null,
                           resourceType: resourceType,
                           containerRid: containerRid));
            }

            return(new CosmosQueryResponseMessageHeaders(
                       continauationToken: sourceHeaders.Continuation,
                       disallowContinuationTokenMessage: null,
                       resourceType: resourceType,
                       containerRid: containerRid)
            {
                RequestCharge = sourceHeaders.RequestCharge,
                ContentLength = sourceHeaders.ContentLength,
                ActivityId = sourceHeaders.ActivityId,
                ETag = sourceHeaders.ETag,
                Location = sourceHeaders.Location,
                RetryAfterLiteral = sourceHeaders.RetryAfterLiteral,
                SubStatusCodeLiteral = sourceHeaders.SubStatusCodeLiteral,
                ContentType = sourceHeaders.ContentType,
            });
        }
예제 #2
0
 /// <summary>
 /// Create a CosmosResponse object with the default properties set
 /// </summary>
 /// <param name="httpStatusCode">The status code of the response</param>
 /// <param name="headers">The headers of the response</param>
 /// <param name="resource">The object from the response</param>
 internal CosmosResponse(
     HttpStatusCode httpStatusCode,
     CosmosResponseMessageHeaders headers,
     T resource)
 {
     this.Headers    = headers;
     this.StatusCode = httpStatusCode;
     this.Resource   = resource;
 }
 /// <summary>
 /// A private constructor to ensure the factory is used to create the object.
 /// This will prevent memory leaks when handling the CosmosResponseMessage
 /// </summary>
 internal CosmosItemResponse(
     HttpStatusCode httpStatusCode,
     CosmosResponseMessageHeaders headers,
     T item) : base(
         httpStatusCode,
         headers,
         item)
 {
 }
예제 #4
0
 /// <summary>
 /// Create a FeedResponse object with the default properties set
 /// </summary>
 /// <param name="httpStatusCode">The status code of the response</param>
 /// <param name="headers">The headers of the response</param>
 /// <param name="resource">The object from the response</param>
 internal FeedResponse(
     HttpStatusCode httpStatusCode,
     CosmosResponseMessageHeaders headers,
     IEnumerable <T> resource)
     : base(
         httpStatusCode,
         headers,
         resource)
 {
 }
예제 #5
0
 /// <summary>
 /// A private constructor to ensure the factory is used to create the object.
 /// This will prevent memory leaks when handling the HttpResponseMessage
 /// </summary>
 internal CosmosContainerResponse(
     HttpStatusCode httpStatusCode,
     CosmosResponseMessageHeaders headers,
     CosmosContainerSettings cosmosContainerSettings,
     CosmosContainer container) : base(
         httpStatusCode,
         headers,
         cosmosContainerSettings)
 {
     this.Container = container;
 }
 /// <summary>
 /// A private constructor to ensure the factory is used to create the object.
 /// This will prevent memory leaks when handling the HttpResponseMessage
 /// </summary>
 internal CosmosTriggerResponse(
     HttpStatusCode httpStatusCode,
     CosmosResponseMessageHeaders headers,
     CosmosTriggerSettings cosmosTriggerSettings,
     CosmosTrigger trigger) : base(
         httpStatusCode,
         headers,
         cosmosTriggerSettings)
 {
     this.Trigger = trigger;
 }
 /// <summary>
 /// A private constructor to ensure the factory is used to create the object.
 /// This will prevent memory leaks when handling the HttpResponseMessage
 /// </summary>
 internal CosmosStoredProcedureResponse(
     HttpStatusCode httpStatusCode,
     CosmosResponseMessageHeaders headers,
     CosmosStoredProcedureSettings cosmosStoredProcedureSettings,
     CosmosStoredProcedure storedProcedure) : base(
         httpStatusCode,
         headers,
         cosmosStoredProcedureSettings)
 {
     this.StoredProcedure = storedProcedure;
 }
예제 #8
0
 /// <summary>
 /// A private constructor to ensure the factory is used to create the object.
 /// This will prevent memory leaks when handling the HttpResponseMessage
 /// </summary>
 internal CosmosDatabaseResponse(
     HttpStatusCode httpStatusCode,
     CosmosResponseMessageHeaders headers,
     CosmosDatabaseSettings cosmosDatabaseSettings,
     CosmosDatabase database) : base(
         httpStatusCode,
         headers,
         cosmosDatabaseSettings)
 {
     this.Database = database;
 }
 /// <summary>
 /// A private constructor to ensure the factory is used to create the object.
 /// This will prevent memory leaks when handling the HttpResponseMessage
 /// </summary>
 internal CosmosUserDefinedFunctionResponse(
     HttpStatusCode httpStatusCode,
     CosmosResponseMessageHeaders headers,
     CosmosUserDefinedFunctionSettings cosmosUserDefinedFunctionSettings,
     CosmosUserDefinedFunction userDefinedFunction) : base(
         httpStatusCode,
         headers,
         cosmosUserDefinedFunctionSettings)
 {
     this.UserDefinedFunction = userDefinedFunction;
 }
 protected ReadFeedResponse(
     IEnumerable <T> resource,
     CosmosResponseMessageHeaders responseMessageHeaders,
     bool hasMoreResults)
     : base(
         httpStatusCode: HttpStatusCode.Accepted,
         headers: responseMessageHeaders,
         resource: resource)
 {
     this.HasMoreResults = hasMoreResults;
 }
        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);
        }
예제 #12
0
 /// <summary>
 /// Create a <see cref="CosmosResponseMessage"/>
 /// </summary>
 /// <param name="statusCode">The HttpStatusCode of the response</param>
 /// <param name="requestMessage">The <see cref="CosmosRequestMessage"/> object</param>
 /// <param name="errorMessage">The reason for failures if any.</param>
 /// <param name="error">The inner error object</param>
 /// <param name="headers">The headers for the response.</param>
 internal CosmosResponseMessage(
     HttpStatusCode statusCode,
     CosmosRequestMessage requestMessage,
     string errorMessage,
     Error error,
     CosmosResponseMessageHeaders headers)
 {
     this.StatusCode     = statusCode;
     this.RequestMessage = requestMessage;
     this.ErrorMessage   = errorMessage;
     this.Error          = error;
     this.Headers        = headers;
 }
        internal static ReadFeedResponse <TInput> CreateResponse <TInput>(
            CosmosResponseMessageHeaders responseMessageHeaders,
            Stream stream,
            CosmosJsonSerializer 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);
            }
        }
 internal CosmosException(CosmosResponseMessage cosmosResponseMessage, string message) :
     base(message)
 {
     if (cosmosResponseMessage != null)
     {
         this.StatusCode    = cosmosResponseMessage.StatusCode;
         this.Headers       = cosmosResponseMessage.Headers;
         this.ActivityId    = this.Headers?.GetHeaderValue <string>(HttpConstants.HttpHeaders.ActivityId);
         this.RequestCharge = this.Headers == null ? 0 : this.Headers.GetHeaderValue <double>(HttpConstants.HttpHeaders.RequestCharge);
         this.SubStatusCode = (int)this.Headers.SubStatusCode;
         if (cosmosResponseMessage.Headers.ContentLengthAsLong > 0)
         {
             using (StreamReader responseReader = new StreamReader(cosmosResponseMessage.Content))
             {
                 this.ResponseBody = responseReader.ReadToEnd();
             }
         }
     }
 }