public static string GetNestProId()
        {
            RestClient  client  = new RestClient($@"https://api.bigcommerce.com/stores/v68kp5ifsa/v2/customers/{customerId}");
            RestRequest request = BigCommerceHelper.CreateNewGetRequest();

            IRestResponse       customerApiResponse = client.Execute(request);
            BigCommerceCustomer parsedCustomer      = JsonConvert.DeserializeObject <BigCommerceCustomer>(customerApiResponse.Content);
            string nestProId = "";

            if (parsedCustomer.form_fields == null)
            {
                string      errorMessage = $"No Nest Pro Id found for Big Commerce customer {customerId}";
                string      title        = "Error in ImportOrdersToNetSuite";
                string      color        = "red";
                TeamsHelper teamsMessage = new TeamsHelper(title, errorMessage, color, Program.errorLogsUrl);
                teamsMessage.LogToMicrosoftTeams(teamsMessage);
            }
            else
            {
                foreach (var formField in parsedCustomer.form_fields)
                {
                    if (formField.name.ToLower().Contains("nest pro id"))
                    {
                        nestProId = formField.value;
                    }
                }
            }

            return(nestProId);
        }
        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 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 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;
            }));
        }
        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 BigCommerceCustomer GetCustomerData()
        {
            string customerUrl = $"https://api.bigcommerce.com/stores/v68kp5ifsa/v2/customers/{customerId}";

            RestClient  client  = new RestClient(customerUrl);
            RestRequest request = BigCommerceHelper.CreateNewGetRequest();

            IRestResponse       customerApiResponse = client.Execute(request);
            BigCommerceCustomer parsedCustomer      = JsonConvert.DeserializeObject <BigCommerceCustomer>(customerApiResponse.Content);

            return(parsedCustomer);
        }
        private static string GetOrderStatus()
        {
            var client  = new RestClient($"{BigCommerceHelper.baseUrl}{bigCommerceOrderId}");
            var request = BigCommerceHelper.CreateNewGetRequest();

            var   jsonResponse = client.Execute(request);
            Order parsedOrder  = JsonConvert.DeserializeObject <Order>(jsonResponse.Content);

            string orderStatus = parsedOrder.status;

            return(orderStatus);
        }
Example #8
0
        private static OrderToImport GetSalesOrderValues(string salesOrderId)
        {
            RestClient  client  = new RestClient(orderImporterSpecControllerUrl);
            RestRequest request = BigCommerceHelper.CreateNewGetRequest();

            NetSuiteHelper.SetNetSuiteTestParameters(request, salesOrderId);

            IRestResponse response       = client.Execute(request);
            OrderToImport parsedResponse = JsonConvert.DeserializeObject <OrderToImport>(response.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);
        }