public static async Task <UploadTrackingApiResponse <T> > Post <T, D>(UploadTrackingApiUpsertRequest <D> request) { try { HttpResponseMessage response; using (var http = new HttpClient()) { http.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); if (request.Header != null) { foreach (var header in request.Header) { http.DefaultRequestHeaders.Add(header.Key, header.Value); } } var json = JsonConvert.SerializeObject(request.Data); StringContent stringContent = new StringContent(json, Encoding.UTF8, "application/json"); response = await http.PostAsync(request.Url, stringContent); } return(new UploadTrackingApiResponse <T> { Data = JsonConvert.DeserializeObject <T>(await response.Content.ReadAsStringAsync()), StatusCode = response.StatusCode, ErrorMessage = response.RequestMessage.ToString() }); } catch (Exception ex) { throw ex; } }
public async Task GetAccessToken(string code, string fullStoreName) { var storeName = fullStoreName.Substring(0, fullStoreName.LastIndexOf(".myshopify.com")); var request = new UploadTrackingApiUpsertRequest <ShopifyAccessTokenRequestModel> { Url = $"https://{storeName}.myshopify.com/admin/oauth/access_token", Data = new ShopifyAccessTokenRequestModel { Code = code } }; var response = await HttpClientHelper.Post <ShopifyAccessTokenResponseModel, ShopifyAccessTokenRequestModel>(request); await _storeIntRepo.SaveIntegration(13, storeName, response.Data.AccessToken); }