static void Main(string[] args)
        {
            // Ongoing WMS is a Warehouse Management System based in Sweden.
            // This file demonstrates one way of integrating with the WMS' REST API.
            // For more information, please see:
            // https://developer.ongoingwarehouse.com/REST/v1/index.html
            // https://www.ongoingwarehouse.com/

            // These are the credentials and other information which are required to connect to the API.
            // Ask the warehouse to generate them for you - https://docs.ongoingwarehouse.com/Manuals/API-Access
            var userName     = "******";
            var password     = "******";
            var baseUrl      = "https://api.ongoingsystems.se/apidemo/";
            var goodsOwnerId = 162;

            // Set up all the client objects.
            var client = new System.Net.Http.HttpClient();

            client.DefaultRequestHeaders.Add("Authorization", "Basic " + Convert.ToBase64String(Encoding.UTF8.GetBytes($"{userName}:{password}")));
            var articlesClient = new ArticlesClient(client)
            {
                BaseUrl = baseUrl
            };
            var ordersClient = new OrdersClient(client)
            {
                BaseUrl = baseUrl
            };
            var purchaseOrderClient = new PurchaseOrdersClient(client)
            {
                BaseUrl = baseUrl
            };
            var inventoryAdjustmentsClient = new InventoryAdjustmentsClient(client)
            {
                BaseUrl = baseUrl
            };
            var transporterContractsClient = new TransporterContractsClient(client)
            {
                BaseUrl = baseUrl
            };

            // Run the tests.
            TestArticles(goodsOwnerId, articlesClient);
            TestOrders(goodsOwnerId, ordersClient);
            TestPurchaseOrders(goodsOwnerId, purchaseOrderClient);
            TestInventoryAdjustments(goodsOwnerId, inventoryAdjustmentsClient);
            TestTransporterContracts(goodsOwnerId, transporterContractsClient);

            Console.WriteLine("Press Enter to exit.");

            Console.Read();
        }
        private static void TestTransporterContracts(int goodsOwnerId, TransporterContractsClient transporterContractsClient)
        {
            // Transporter contracts are the available shipping methods.
            // When you create orders, you may send in a shipping method if you wish, so that warehouse knows exactly
            // which transporter to use when shipping the order.
            var contracts = transporterContractsClient.Get(goodsOwnerId);

            Console.WriteLine("Available transporter contracts:");
            Console.WriteLine("");
            foreach (var contract in contracts)
            {
                Console.WriteLine($"Transporter '{contract.TransporterName}', transporter code '{contract.TransporterCode}'");
                foreach (var service in contract.TransporterServices)
                {
                    Console.WriteLine($"- Service '{service.TransporterServiceName}', service code '{service.TransporterServiceCode}'");
                }
                Console.WriteLine("");
            }
        }