/// <summary> /// Method to Calculate Order Tax /// </summary> /// <returns></returns> public async Task <OrderTaxResponse> TaxForOrder(OrderTaxRequest orderTax) { //Validate request and consumer _taxServiceValidator.ValidateOrderTaxRequest(orderTax); //Get Consumer Details var consumerDetail = _consumerHelper.GetConsumer(); //Create api request var apiRequest = new OrderTaxApiRequest() { //required To_country = orderTax.To_country, Shipping = orderTax.Shipping, From_country = orderTax.From_country, ////optional From_zip = orderTax.From_zip, From_city = orderTax.From_city, From_state = orderTax.From_state, From_street = orderTax.From_street, To_city = orderTax.To_city, To_street = orderTax.To_street, Amount = orderTax.Amount, Nexus_addresses = MapAddress(orderTax.Nexus_addresses), Line_items = MaplineItem(orderTax.Line_items), ////conditional To_zip = orderTax.To_zip, To_state = orderTax.To_state, TaxApiAuthToken = consumerDetail.TaxApiAuthToken, TaxApiUrl = consumerDetail.TaxApiUrl }; //Call repository with valid request var response = await _taxRepository.TaxForOrder(apiRequest); return(response); }
/// <summary> /// Method to make Api call for Order's rate /// </summary> /// <returns></returns> public async Task <OrderTaxResponse> TaxForOrder(OrderTaxApiRequest apiRequest) { var response = await _apiClient.ApiCall <OrderTaxResponse>(HttpMethod.Post, apiRequest.TaxApiUrl, apiRequest.Uri, apiRequest.TaxApiAuthToken, apiRequest); return(response); }