1- using System ;
2- using System . Collections . Generic ;
3- using System . Linq ;
4- using System . Threading . Tasks ;
5- using Microsoft . eShopOnContainers . WebMVC . ViewModels ;
1+ using Microsoft . AspNetCore . Authentication ;
62using Microsoft . AspNetCore . Http ;
7- using System . Net . Http ;
3+ using Microsoft . eShopOnContainers . WebMVC . ViewModels ;
84using Microsoft . Extensions . Options ;
95using Newtonsoft . Json ;
10- using Microsoft . AspNetCore . Authentication ;
11- using Microsoft . eShopOnContainers . WebMVC . Extensions ;
6+ using System . Collections . Generic ;
7+ using System . Linq ;
8+ using System . Net . Http ;
9+ using System . Threading . Tasks ;
10+ using WebMVC . Services . Utilities ;
1211
1312namespace Microsoft . eShopOnContainers . WebMVC . Services
1413{
1514 public class BasketService : IBask
133E
etService
1615 {
1716 private readonly IOptionsSnapshot < AppSettings > _settings ;
18- private HttpClient _apiClient ;
17+ private IHttpClient _apiClient ;
1918 private readonly string _remoteServiceBaseUrl ;
2019 private IHttpContextAccessor _httpContextAccesor ;
2120
22- public BasketService ( IOptionsSnapshot < AppSettings > settings , IHttpContextAccessor httpContextAccesor )
21+ public BasketService ( IOptionsSnapshot < AppSettings > settings , IHttpContextAccessor httpContextAccesor , IHttpClient httpClient )
2322 {
2423 _settings = settings ;
2524 _remoteServiceBaseUrl = _settings . Value . BasketUrl ;
2625 _httpContextAccesor = httpContextAccesor ;
26+ _apiClient = httpClient ;
2727 }
2828
2929 public async Task < Basket > GetBasket ( ApplicationUser user )
3030 {
3131 var context = _httpContextAccesor . HttpContext ;
3232 var token = await context . Authentication . GetTokenAsync ( "access_token" ) ;
3333
34- _apiClient = new HttpClient ( ) ;
35- _apiClient . DefaultRequestHeaders . Authorization = new System . Net . Http . Headers . AuthenticationHeaderValue ( "Bearer" , token ) ;
34+ _apiClient . Inst . DefaultRequestHeaders . Authorization = new System . Net . Http . Headers . AuthenticationHeaderValue ( "Bearer" , token ) ;
3635
3736 var basketUrl = $ "{ _remoteServiceBaseUrl } /{ user . Id . ToString ( ) } ";
3837 var dataString = await _apiClient . GetStringAsync ( basketUrl ) ;
@@ -52,13 +51,12 @@ public async Task<Basket> UpdateBasket(Basket basket)
5251 {
5352 var context = _httpContextAccesor . HttpContext ;
5453 var token = await context . Authentication . GetTokenAsync ( "access_token" ) ;
55-
56- _apiClient = new HttpClient ( ) ;
57- _apiClient . DefaultRequestHeaders . Authorization = new System . Net . Http . Headers . AuthenticationHeaderValue ( "Bearer" , token ) ;
54+
55+ _apiClient . Inst . DefaultRequestHeaders . Authorization = new System . Net . Http . Headers . AuthenticationHeaderValue ( "Bearer" , token ) ;
5856
5957 var basketUrl = _remoteServiceBaseUrl ;
60- StringContent content = new StringContent ( JsonConvert . SerializeObject ( basket ) , System . Text . Encoding . UTF8 , "application/json" ) ;
61- var response = await _apiClient . PostAsync ( basketUrl , content ) ;
58+
59+ var response = await _apiClient . PostAsync ( basketUrl , basket ) ;
6260
6361 return basket ;
6462 }
@@ -120,8 +118,7 @@ public async Task CleanBasket(ApplicationUser user)
120118 var context = _httpContextAccesor . HttpContext ;
121119 var token = await context . Authentication . GetTokenAsync ( "access_token" ) ;
122120
123- _apiClient = new HttpClient ( ) ;
124- _apiClient . DefaultRequestHeaders . Authorization = new System . Net . Http . Headers . AuthenticationHeaderValue ( "Bearer" , token ) ;
121+ _apiClient . Inst . DefaultRequestHeaders . Authorization = new System . Net . Http . Headers . AuthenticationHeaderValue ( "Bearer" , token ) ;
125122 var basketUrl = $ "{ _remoteServiceBaseUrl } /{ user . Id . ToString ( ) } ";
126123 var response = await _apiClient . DeleteAsync ( basketUrl ) ;
127124
0 commit comments