public static List <string> GetImportedItemFulfillments() { var getImportedItemFulfillmentsRetryPolicy = Policy.Handle <SqlException>() .WaitAndRetry(4, _ => TimeSpan.FromSeconds(30), (ex, ts, count, context) => { string errorMessage = "Error in GetImportedItemFulfillments"; Log.Warning(ex, $"{errorMessage} . Retrying..."); if (count == 4) { Log.Error(ex, errorMessage); } }); return(getImportedItemFulfillmentsRetryPolicy.Execute(() => { RestClient client = new RestClient($"{BigCommerceHelper.baseUrl}/{bigCommerceOrderId}/shipments"); RestRequest request = BigCommerceHelper.CreateNewGetRequest(); IRestResponse shipmentsApiResponse = client.Execute(request); JArray parsedShipmentsApiResponse = BigCommerceHelper.ParseApiResponse(shipmentsApiResponse.Content); List <string> shipmentsOnOrder = new List <string>(); foreach (var shipment in parsedShipmentsApiResponse) { Shipment parsedShipment = JsonConvert.DeserializeObject <Shipment>(shipment.ToString()); string netsuiteItemFulfillmentId = parsedShipment.NetSuiteItemFulfillmentId; shipmentsOnOrder.Add(netsuiteItemFulfillmentId); } Log.Information("shipmentsOnOrder {@shipmentsOnOrder}", shipmentsOnOrder); return shipmentsOnOrder; })); }
public static List <Product> GetProductsOnOrder(string productsUrl) { var getProductsOnOrderRetryPolicy = Policy.Handle <SqlException>() .WaitAndRetry(4, _ => TimeSpan.FromSeconds(30), (ex, ts, count, context) => { string errorMessage = "Error in GetProductsOnOrder"; Log.Warning(ex, $"{errorMessage} . Retrying..."); if (count == 4) { Log.Error(ex, errorMessage); } }); return(getProductsOnOrderRetryPolicy.Execute(() => { RestClient client = new RestClient(productsUrl); RestRequest request = BigCommerceHelper.CreateNewGetRequest(); IRestResponse productsApiResponse = client.Execute(request); JArray parsedProductsApiResponse = BigCommerceHelper.ParseApiResponse(productsApiResponse.Content); List <Product> productsOnOrder = new List <Product>(); foreach (var product in parsedProductsApiResponse) { Product parsedProduct = JsonConvert.DeserializeObject <Product>(product.ToString()); productsOnOrder.Add(parsedProduct); } Log.Information("productsOnOrder {@productsOnOrder}", productsOnOrder); return productsOnOrder; })); }
public static ShippingAddress GetCustomerShippingAddress(string shippingAddressUrl) { var getCustomerShippingAddressRetryPolicy = Policy.Handle <SqlException>() .WaitAndRetry(4, _ => TimeSpan.FromSeconds(30), (ex, ts, count, context) => { string errorMessage = "Error in GetCustomerShippingAddress"; Log.Warning(ex, $"{errorMessage} . Retrying..."); if (count == 4) { Log.Error(ex, errorMessage); } }); return(getCustomerShippingAddressRetryPolicy.Execute(() => { RestClient client = new RestClient(shippingAddressUrl); RestRequest request = BigCommerceHelper.CreateNewGetRequest(); IRestResponse shippingAddressApiResponse = client.Execute(request); JArray parsedShippingAddressApiResponse = BigCommerceHelper.ParseApiResponse(shippingAddressApiResponse.Content); // There will only be one shipping address, so we get the address at the first index ShippingAddress parsedShippingAddress = JsonConvert.DeserializeObject <ShippingAddress>(parsedShippingAddressApiResponse[0].ToString()); Log.Information("Shipping address id: {@shippingAddressId}", parsedShippingAddress.id); return parsedShippingAddress; })); }
public static Shipment PostShipmentToBigCommerce(Shipment shipmentToCreate) { RestClient client = new RestClient($"{BigCommerceHelper.baseUrl}/{bigCommerceOrderId}/shipments"); string jsonRequest = JsonConvert.SerializeObject(shipmentToCreate); RestRequest request = BigCommerceHelper.CreateNewPostRequest(jsonRequest); IRestResponse shipmentApiResponse = client.Execute(request); // If there is an error, the API will send the response as a JArray instead of JObject try { Shipment shipmentCreated = JsonConvert.DeserializeObject <Shipment>(shipmentApiResponse.Content); Log.Information($"Shipment created in Big Commerce. Shipment id: {shipmentCreated.ShipmentId}, Big Commerce order id: {bigCommerceOrderId}"); return(shipmentCreated); } catch (Exception ex) { JArray bigCommerceErrorResponse = BigCommerceHelper.ParseApiResponse(shipmentApiResponse.Content); string errorMessage = $"Invalid shipment request. Error: {bigCommerceErrorResponse}"; Log.Error($"Error in PostShipmentToBigCommerce. {errorMessage}"); throw new Exception(errorMessage); } }
private static JArray GetOrdersAwaitingShipment() { RestClient client = new RestClient($"{BigCommerceHelper.baseUrl}?status_id=9"); RestRequest request = BigCommerceHelper.CreateNewGetRequest(); IRestResponse jsonResponse = client.Execute(request); JArray parsedResponse = BigCommerceHelper.ParseApiResponse(jsonResponse.Content); return(parsedResponse); }
public static ShippingAddress GetCustomerShippingAddress(string shippingAddressUrl) { RestClient client = new RestClient(shippingAddressUrl); RestRequest request = BigCommerceHelper.CreateNewGetRequest(); IRestResponse shippingAddressApiResponse = client.Execute(request); JArray parsedShippingAddressApiResponse = BigCommerceHelper.ParseApiResponse(shippingAddressApiResponse.Content); ShippingAddress parsedShippingAddress = JsonConvert.DeserializeObject <ShippingAddress>(parsedShippingAddressApiResponse[0].ToString()); Log.Information("parsedShippingAddress {@parsedShippingAddress}", parsedShippingAddress); return(parsedShippingAddress); }
public static JArray GetOrdersByStatus(int statusId) { RestClient client = new RestClient($"{getOrdersByStatusBaseUrl}{statusId}"); RestRequest request = BigCommerceHelper.CreateNewGetRequest(); string jsonResponse = client.Execute(request).Content; // Handles if there are no orders for a given status if (jsonResponse == "") { return(new JArray()); } return(BigCommerceHelper.ParseApiResponse(jsonResponse)); }
public static JArray GetOrdersAwaitingFulfillment() { RestClient client = new RestClient($"{BigCommerceHelper.baseUrl}?status_id={awaitingFulfillmentStatusId}"); RestRequest request = BigCommerceHelper.CreateNewGetRequest(); string jsonResponse = client.Execute(request).Content; JArray parsedResponse; // Handles if there are no orders for a given status if (jsonResponse == "") { parsedResponse = new JArray(); } else { parsedResponse = BigCommerceHelper.ParseApiResponse(jsonResponse); } return(parsedResponse); }
public static List <Product> GetProductsOnOrder(string productsUrl) { RestClient client = new RestClient(productsUrl); RestRequest request = BigCommerceHelper.CreateNewGetRequest(); IRestResponse productsApiResponse = client.Execute(request); JArray parsedProductsApiResponse = BigCommerceHelper.ParseApiResponse(productsApiResponse.Content); List <Product> productsOnOrder = new List <Product>(); foreach (var product in parsedProductsApiResponse) { Product parsedProduct = JsonConvert.DeserializeObject <Product>(product.ToString()); // Map rate and amount values to the NetSuite expected names parsedProduct.Rate = Convert.ToDouble(parsedProduct.BasePrice); parsedProduct.Amount = Convert.ToDouble(parsedProduct.BaseTotal); productsOnOrder.Add(parsedProduct); } Log.Information("productsOnOrder {@productsOnOrder}", productsOnOrder); return(productsOnOrder); }