private ServiceResponse SendImpl()

in sdk/Common/Communication/RetryableServiceClient.cs [56:80]


        private ServiceResponse SendImpl(ServiceRequest request, ExecutionContext context, int retryTimes)
        {
            long originalContentPosition = -1;
            try
            {
                if (request.Content != null && request.Content.CanSeek)
                    originalContentPosition = request.Content.Position;
                return _innerClient.Send(request, context);
            }
            catch (Exception ex)
            {
                if (ShouldRetry(request, ex, retryTimes))
                {
                    if (request.Content != null && (originalContentPosition >= 0 && request.Content.CanSeek))
                        request.Content.Seek(originalContentPosition, SeekOrigin.Begin);
                    
                    Pause(retryTimes);
                    
                    return SendImpl(request, context, ++retryTimes);
                }

                // Rethrow
                throw;
            }
        }