public HttpClient Create()

in src/Microsoft.Atlas.CommandLine/OAuth2/HttpClientFactory.cs [41:83]


        public HttpClient Create(HttpAuthentication auth)
        {
            HttpMessageHandler handler;

            handler = _httpClientHandlerFactory.Create();

            var settings = _settingsManager.ReadSettings();
            var tokenCache = _settingsManager.GetTokenCache();
            var tokenProvider = new TokenProvider(settings, tokenCache, _console);

            if (auth != null)
            {
                handler = new AuthenticationTokenMessageHandler(() => tokenProvider.AcquireTokenAsync(auth))
                {
                    InnerHandler = handler
                };
            }

            handler = new LambdaDelegatingHandler(handler, SharedKeyAuthentication);

            handler = new LambdaDelegatingHandler(handler, async (request, cancellationToken, next) =>
            {
                var sw = new Stopwatch();
                try
                {
                    // _logger.LogInformation("{Method} {Url}", request.Method, request.RequestUri);
                    _console.WriteLine($"{request.Method.ToString().Color(ConsoleColor.DarkGreen)} {request.RequestUri}");
                    sw.Start();
                    var response = await next(request, cancellationToken);
                    sw.Stop();
                    _console.WriteLine($"{response.StatusCode.ToString().Color((int)response.StatusCode >= 400 ? ConsoleColor.Red : ConsoleColor.Green)} {request.RequestUri} {sw.ElapsedMilliseconds}ms");

                    return response;
                }
                catch
                {
                    Console.WriteLine($"{"FAIL".Color(ConsoleColor.DarkRed)} {request.RequestUri} {sw.ElapsedMilliseconds}ms");
                    throw;
                }
            });

            return new HttpClient(handler);
        }