public async Task GetTaxes_NoToState_CA() { // arrage var taxesRequest = new TaxesRequest() { FromCountry = "CA", FromZip = "V6G 3E", FromState = "BC", ToCountry = "CA", ToZip = "M5V 2T6", Amount = 16.95, Shipping = 10, LineItems = new List <GetTaxesRequestLineItem>() { new GetTaxesRequestLineItem { Quantity = 1, UnitPrice = 16.95 } } }; var expectedAmountToCollect = 3.5; var expectedTaxableAmount = 26.95; // act var taxesResponse = await taxCalculator.GetTaxesForOrder(taxesRequest); // assert Assert.AreEqual(expectedAmountToCollect, taxesResponse.AmountToCollect); Assert.AreEqual(expectedTaxableAmount, taxesResponse.TaxableAmount); }
public async Task GetTaxes_NoToZip_US() { // arrage var taxesRequest = new TaxesRequest() { FromCountry = "US", FromZip = "07001", FromState = "NJ", ToCountry = "US", ToZip = "", ToState = "NJ", Amount = 16.50, Shipping = 1.5, LineItems = new List <GetTaxesRequestLineItem>() { new GetTaxesRequestLineItem { Quantity = 1, UnitPrice = 15.0, ProductTaxCode = "31000" } } }; var expectedAmountToCollect = 1.09; var expectedTaxableAmount = 16.5; // act var taxesResponse = await taxCalculator.GetTaxesForOrder(taxesRequest); // assert Assert.AreEqual(expectedAmountToCollect, taxesResponse.AmountToCollect); Assert.AreEqual(expectedTaxableAmount, taxesResponse.TaxableAmount); }
public async Task <IActionResult> GetTaxesAsync([FromBody] TaxesRequest model) { try { var rates = await _TaxCalculator.GetTaxsForOrderAsync(model); return(Ok(rates)); } catch (Exception ex) { return(BadRequest(ex.Message)); } }
public static void GetCalculateTa(ITaxJarService service, HttpClient httpClient) { string Uri = "v2/taxes"; var taxesRequest = new TaxesRequest() { from_country = "US", from_zip = "92093", from_state = "CA", from_city = "La Jolla", from_street = "9500 Gilman Drive", to_country = "US", to_zip = "90002", to_state = "CA", to_city = "Los Angeles", to_street = "1335 E 103rd St", amount = 15, shipping = 1.5, nexus_addresses = new List <nexusAddresses>() { new nexusAddresses() { id = "Main Location", country = "US", zip = "92093", state = "CA", city = "La Jolla", street = "9500 Gilman Drive", } }, line_items = new List <lineItems>() { new lineItems() { id = "1", quantity = 1, product_tax_code = "20010", unit_price = 15, discount = 0 } } }; var model = service.Calculate_the_taxes_for_an_order(httpClient, taxesRequest, Uri); Console.WriteLine("order_total_amount: {0} \t shipping: {1} \t taxable_amount: {2}", model.Result.tax.order_total_amount, model.Result.tax.shipping, model.Result.tax.taxable_amount); }
public static void GettotalTax(ITaxJarService service, HttpClient httpClient) { string Uri = "v2/taxes"; var taxesRequest = new TaxesRequest() { from_country = "US", from_zip = "92093", from_state = "CA", from_city = "La Jolla", from_street = "9500 Gilman Drive", to_country = "US", to_zip = "90002", to_state = "CA", to_city = "Los Angeles", to_street = "1335 E 103rd St", amount = 15, shipping = 1.5, nexus_addresses = new List <nexusAddresses>() { new nexusAddresses() { id = "Main Location", country = "US", zip = "92093", state = "CA", city = "La Jolla", street = "9500 Gilman Drive", } }, line_items = new List <lineItems>() { new lineItems() { id = "1", quantity = 1, product_tax_code = "20010", unit_price = 15, discount = 0 } } }; var model = service.TotalTaxTobecollected(httpClient, taxesRequest, Uri); Console.WriteLine("the total tax that needs to be collectedt: {0} ", model); }
async public Task <TaxesResponse> GetTaxesForOrder(TaxesRequest taxesRequest) { if (taxesRequest == null) { throw new ArgumentNullException("taxesRequest"); } if (string.IsNullOrWhiteSpace(taxesRequest.ToCountry)) { throw new ArgumentException("Param ToCountry is required.", nameof(taxesRequest)); } if (string.IsNullOrWhiteSpace(taxesRequest.ToZip)) { if (taxesRequest.ToCountry == Constants.COUNTRY_CODE_US) { throw new ArgumentException("Param ToZip is required for US.", nameof(taxesRequest)); } } if (string.IsNullOrWhiteSpace(taxesRequest.ToState)) { if (taxesRequest.ToCountry == Constants.COUNTRY_CODE_US || taxesRequest.ToCountry == Constants.COUNTRY_CODE_CANADA) { throw new ArgumentException("Param ToState is required for US and CA.", nameof(taxesRequest)); } } // TODO: Finish all other possible validations as per api doc: https://developers.taxjar.com/api/reference/#post-calculate-sales-tax-for-an-order try { var taxesResponse = await TaxJarHttpClientProvider.PostAsync <TaxesJarResponse, TaxesRequest>("taxes", taxesRequest, Constants.API_KEY); return(taxesResponse.Tax); } catch (Exception ex) { throw new TaxCalculatorException(ex.Message); } }
public void TestGetOrderTaxes() { var service = new TaxJarCalculator(); var request = new TaxesRequest { from_country = "US", from_state = "NJ", from_zip = "07001", to_country = "US", to_zip = "07446", to_state = "NJ", shipping = 1.5, amount = 16.50 }; var actual = service.GetTaxsForOrderAsync(request).GetAwaiter().GetResult(); Assert.AreEqual(1.19, actual.tax.amount_to_collect); }
async public Task <TaxesResponse> GetTaxesForOrder(TaxesRequest taxesRequest) { throw new NotImplementedException(); }
async public Task <TaxesResponse> GetTaxesForOrder(TaxesRequest taxesRequest) { // Do some businees logic here return(await this._taxCalculator.GetTaxesForOrder(taxesRequest)); }