internal static CosmosException Create( DocumentClientException dce, CosmosDiagnosticsContext diagnosticsContext) { Headers headers = dce.Headers == null ? new Headers() : new Headers(dce.Headers); HttpStatusCode httpStatusCode; if (dce.StatusCode.HasValue) { httpStatusCode = dce.StatusCode.Value; } else if (dce.InnerException != null && dce.InnerException is TransportException) { httpStatusCode = HttpStatusCode.RequestTimeout; } else { httpStatusCode = HttpStatusCode.InternalServerError; } return(CosmosExceptionFactory.Create( httpStatusCode, Headers.GetIntValueOrDefault(headers.SubStatusCodeLiteral), dce.Message, dce.StackTrace, dce.ActivityId, dce.RequestCharge, dce.RetryAfter, headers, diagnosticsContext, dce.Error, dce.InnerException)); }
internal static CosmosException Create( DocumentClientException dce, ITrace trace) { Headers headers = dce.Headers == null ? new Headers() : new Headers(dce.Headers); HttpStatusCode httpStatusCode; if (dce.StatusCode.HasValue) { httpStatusCode = dce.StatusCode.Value; } else if (dce.InnerException != null && dce.InnerException is TransportException) { httpStatusCode = HttpStatusCode.RequestTimeout; } else { httpStatusCode = HttpStatusCode.InternalServerError; } return(CosmosExceptionFactory.Create( httpStatusCode, dce.Message, dce.StackTrace, headers, trace, dce.Error, dce.InnerException)); }
internal static CosmosException Create( DocumentClientException dce, CosmosDiagnosticsContext diagnosticsContext) { Headers headers = new Headers(); if (dce.Headers != null) { foreach (string key in dce.Headers) { string value = dce.Headers[key]; if (value == null) { throw new ArgumentNullException( message: $"{nameof(key)}: {key};", innerException: dce); } headers.Add(key, value); } } HttpStatusCode httpStatusCode; if (dce.StatusCode.HasValue) { httpStatusCode = dce.StatusCode.Value; } else if (dce.InnerException != null && dce.InnerException is TransportException) { httpStatusCode = HttpStatusCode.RequestTimeout; } else { httpStatusCode = HttpStatusCode.InternalServerError; } return(CosmosExceptionFactory.Create( httpStatusCode, (int)dce.GetSubStatus(), dce.Message, dce.StackTrace, dce.ActivityId, dce.RequestCharge, dce.RetryAfter, headers, diagnosticsContext, dce.Error, dce.InnerException)); }