Ejemplo n.º 1
0
        private async Task <IRestResponse> SendRequestAsync(Method method, int?carID = null, object obj = null)
        {
            RestRequest request = new RestRequest(method);

            if (carID.HasValue)
            {
                request.Resource = "{carID}";
                request.AddUrlSegment("carID", carID.Value.ToString());
            }

            request.AddHeader("Accept", "application/json");

            if (obj != null)
            {
                request.AddJsonBody(obj);
            }

            var response = await _client.ExecuteTaskAsync(request);

            bool tokenExpired =
                Convert.ToBoolean(response.Headers.FirstOrDefault(x => x.Name == "Token-Expired")?.Value ?? false);

            if (!response.IsSuccessful && tokenExpired)
            {
                _authenticator.RefreshTokens();
                response = await SendRequestAsync(method, carID, obj);
            }
            return(response);
        }