Exemplo n.º 1
0
        /// <summary>
        /// Function get the Business Return
        /// </summary>
        /// <returns>BusinessReturnList</returns>
        public ActionResult GetBusinessList()
        {
            var      ListReturnRepsone     = new BusinessListResponse();
            var      Business              = new List <Business>();
            var      getReturnResponseJSON = string.Empty;
            DateTime aDate = DateTime.Now;
            //Get URLs from App.Config
            string ApiUrl = Utility.GetAppSettings(Constants.PublicAPIUrlWithJWT);
            //Get Access token from GetAccessToken Class
            GetAccessToken AccessToken = new GetAccessToken(HttpContext);
            //Get Access token from OAuth API response
            var GeneratedAccessToken = AccessToken.GetGeneratedAccessToken();

            if (!string.IsNullOrWhiteSpace(GeneratedAccessToken))
            {
                using (var apiClient = new HttpClient())
                {
                    //API URL to Get Business List Return
                    string requestUri = "Business/List?Page=0&PageSize=10";

                    apiClient.BaseAddress = new Uri(ApiUrl);
                    //Construct HTTP headers
                    OAuthGenerator.ConstructHeadersWithAccessToken(apiClient, GeneratedAccessToken);
                    //Get Response
                    var _response = apiClient.GetAsync(requestUri).Result;
                    if (_response != null && _response.IsSuccessStatusCode)
                    {
                        //Read Response
                        var createResponse = _response.Content.ReadAsAsync <BusinessListResponse>().Result;
                        if (createResponse != null)
                        {
                            getReturnResponseJSON = JsonConvert.SerializeObject(createResponse, Formatting.Indented);
                            ListReturnRepsone     = new JavaScriptSerializer().Deserialize <BusinessListResponse>(getReturnResponseJSON);
                            Business = ListReturnRepsone.Businesses;
                        }
                    }
                    else
                    {
                        var createResponse = _response.Content.ReadAsAsync <Object>().Result;
                        getReturnResponseJSON = JsonConvert.SerializeObject(createResponse, Formatting.Indented);
                        ListReturnRepsone     = new JavaScriptSerializer().Deserialize <BusinessListResponse>(getReturnResponseJSON);
                    }
                }
            }
            return(PartialView("_GetBusinessList", Business));
        }
Exemplo n.º 2
0
        /// <summary>
        /// Dependencies: System.IdentityModel.Tokens.Jwt & System.Net.Http.Formatting.Extension
        /// Steps to hit Business/List endpoint:
        /// 1. Get credentials/keys from Dev console and add it to App config
        /// 2. Construct the JWS using the credentials and hit OAuth API
        /// 3. Access token returned from OAuth API will be valid for one hour
        /// 4. Call Business/List endpoint using Access token (JWT) in the header
        /// 5. Read the response from Business/List endpoint
        /// </summary>
        /// <param name="args"></param>
        public static void Main(string[] args)
        {
            //Get URLs from App.Config
            string oAuthApiUrl = AuthGenerator.GetAppSettings("OAuthApiUrl");
            string apiUrl      = AuthGenerator.GetAppSettings("TBSApiUrl");

            //Call OAuth API
            using (var oAuthClient = new HttpClient())
            {
                string oAuthRequestUri = AuthGenerator.GetAppSettings("OAuthApiMethodRoute");
                oAuthClient.BaseAddress = new Uri(oAuthApiUrl);

                //Generate JWS and get access token (JWT)
                AuthGenerator.GenerateJWSAndGetAccessToken(oAuthClient);

                //Read OAuth API response
                var response = oAuthClient.GetAsync(oAuthRequestUri).Result;
                if (response != null && response.IsSuccessStatusCode)
                {
                    var oauthApiResponse = response.Content.ReadAsAsync <AccessTokenResponse>().Result;
                    if (oauthApiResponse != null && oauthApiResponse.StatusCode == 200)
                    {
                        //Get Access token from OAuth API response
                        string accessToken = oauthApiResponse.AccessToken;
                        //Access token is valid for one hour. After that call OAuth API again & get new Access token.

                        if (!string.IsNullOrWhiteSpace(accessToken))
                        {
                            //Call TaxBandits API using the Access token
                            //Access token is valid for one hour. After that call OAuth API again & get new Access token.
                            using (var apiClient = new HttpClient())
                            {
                                string requestUri = "business/list?Page=1&FromDate=null&ToDate=null&PageSize=50";
                                apiClient.BaseAddress = new Uri(apiUrl);

                                //Construct HTTP headers
                                //If Access token got expired, call OAuth API again & get new Access token.
                                AuthGenerator.ConstructHeadersWithAccessToken(apiClient, accessToken);

                                var apiResponse = apiClient.GetAsync(requestUri).Result;
                                if (apiResponse != null && apiResponse.IsSuccessStatusCode)
                                {
                                    //Read response from TaxBandits API
                                    var listResponse = apiResponse.Content.ReadAsAsync <BusinessListResponse>().Result;
                                    if (listResponse != null)
                                    {
                                        BusinessListResponse fullList = new BusinessListResponse();
                                        fullList = listResponse;
                                        Console.WriteLine("No of Businesses: " + fullList.TotalRecords.ToString());
                                    }
                                    else
                                    {
                                        Console.WriteLine("Error occurred");
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }