private Models.OAuthResponse HandleApiResponse(System.Net.Http.HttpResponseMessage response, Models.TokenType tokenType) { var oAuthResponse = new Models.OAuthResponse(); var result = response.Content.ReadAsStringAsync().Result; if (response.StatusCode != System.Net.HttpStatusCode.OK) { oAuthResponse.ErrorMessage = result; var err = Newtonsoft.Json.JsonConvert.DeserializeObject <Models.Error>(result); oAuthResponse.Error = err; //if (!string.IsNullOrWhiteSpace(err?.ErrorDescription)) // throw err; //else // throw new Models.ApiException((int)response.StatusCode, "Error calling GetItem: " + response.Content, response.Content.ReadAsStringAsync().Result); //log.Error("Error in fetching the token. Error:" + oAuthResponse.ErrorMessage); } else { var apiResponse = JsonConvert.DeserializeObject <Models.OAuthApiResponse>(result); oAuthResponse.TokenType = apiResponse.TokenType; oAuthResponse.ErrorMessage = apiResponse.ErrorMessage; //Set AccessToken var accessToken = new Models.OAuthToken { Token = apiResponse.AccessToken, ExpiresIn = apiResponse.ExpiresIn, ExpiresOn = DateTime.Now.Add(new TimeSpan(0, 0, apiResponse.ExpiresIn)), TokenType = tokenType }; oAuthResponse.AccessToken = accessToken; //Set Refresh Token if (apiResponse.RefreshToken != null) { var refreshToken = new Models.OAuthToken { Token = apiResponse.RefreshToken, ExpiresIn = apiResponse.RefreshTokenExpiresIn, ExpiresOn = DateTime.Now.Add(new TimeSpan(0, 0, apiResponse.RefreshTokenExpiresIn)), }; oAuthResponse.RefreshToken = refreshToken; } } //log.Info("Fetched the token successfully from API"); return(oAuthResponse); }
private Models.OAuthResponse fetchToken(string path, IEnumerable <KeyValuePair <string, string> > formParams, string basicAuthorization, Models.TokenType tokenType) { using (var request_ = new System.Net.Http.FormUrlEncodedContent(formParams)) { request_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/x-www-form-urlencoded"); _httpClient.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Basic", basicAuthorization); var response = _httpClient.PostAsync(path, request_).Result; return(HandleApiResponse(response, tokenType)); } }