public void ShouldGetUnshippedOrders()
        {
            //Arrange
            var shippingStationOrder = new ShipStationOrders();


            //Act
            var result = shippingStationOrder.GetUnshippedOrders();

            //Assert
            Assert.True(result.Count > 0);
        }
        //Change GetImageURl method to public to test
        //[TestMethod]
        public void ShouldGetImageURL()
        {
            //Arrange
            var shippingStationOrder = new ShipStationOrders();
            var EISKU = "MI7657226";

            //Act
            var result = shippingStationOrder.GetImageURLPublic(EISKU);


            //Assert
            //Assert.IsTrue(result != "");
        }
        public void ShouldPostOrdersToShipStation()
        {
            //Arrange
            var        shippingStationOrder = new ShipStationOrders();
            Task <int> result_task;


            //Act
            result_task = shippingStationOrder.PostOrderToShippingStation();
            result_task.Wait();
            var result = result_task.Result;

            //Assert
            //Assert.IsTrue(result > 0);
        }
Example #4
0
        private static void ExecuteOneTimeRunAccurateWeight(DateTime lastDate)
        {
            Console.WriteLine("Starting One Time Execute Accurate Weight...");

            var shippingStationOrder = new ShipStationOrders();

            var result_task = shippingStationOrder.GetAccurateWeight_PreviousDates(lastDate);

            result_task.Wait();
            var result = result_task.Result;

            Console.WriteLine("Total accurate weight items updated from ShipStation: " + result.ToString());

            Console.WriteLine("One Time Execute Accurate Weight end.");
            Console.ReadKey(true);
        }
        public void ShouldDeleteOrders()
        {
            //Arrange
            var shippingStationOrder = new ShipStationOrders();
            var orderNumber          = "test";


            //Act
            var resultTask = shippingStationOrder.DeleteOrderByOrderNumber(orderNumber);

            resultTask.Wait();
            var result = resultTask.Result;

            //Assert
            Assert.True(result);
        }
        public void ShouldGetTrackingNumberandCost()
        {
            //Arrange
            var        shippingStationOrder = new ShipStationOrders();
            Task <int> resultTask;

            //Act
            resultTask = shippingStationOrder.PostTrackingNumberAndCost();
            resultTask.Wait();

            var result = resultTask.Result;


            //Assert
            Assert.True(result > 0);
        }
        //[TestMethod]
        public void ShouldGetOrderFromShipStation()
        {
            //Arrange
            var shippingStationOrder = new ShipStationOrders();
            Task <List <ShipStationOrdersViewModel> > result_task;
            List <ShipStationOrdersViewModel>         result = null;

            //Act
            result_task = shippingStationOrder.GetOrders();

            result_task.Wait();

            result = result_task.Result;

            //Assert
            //Assert.IsTrue(result.Count > 0);
        }
        public void ShouldGetShipmentFromShipStation()
        {
            //Arrange
            var shippingStationOrder = new ShipStationOrders();
            Task <List <ShipStationShipmentViewModel> > result_task;
            List <ShipStationShipmentViewModel>         result = new List <ShipStationShipmentViewModel>();

            //Act
            result_task = shippingStationOrder.GetShipments();

            result_task.Wait();

            result = result_task.Result;

            //Assert
            Assert.True(result.Count > 0);
        }
        public void ShouldPostOrderToShipStationByOrderNumber()
        {
            //Arrange
            var        shippingStationOrder = new ShipStationOrders();
            Task <int> result_task;
            int        result      = 0;
            var        orderNumber = "1006539";

            //Act
            result_task = shippingStationOrder.PostOrderToShippingStationByOrderNumber(orderNumber);

            result_task.Wait();

            result = result_task.Result;

            //Assert
            //Assert.IsTrue(result > 0);
        }
        //[TestMethod]
        public void ShouldGetShipmentFromShipStationByDate()
        {
            //Arrange
            var shippingStationOrder = new ShipStationOrders();
            Task <List <ShipStationShipmentViewModel> > result_task;
            List <ShipStationShipmentViewModel>         result = new List <ShipStationShipmentViewModel>();
            var lastDate = Convert.ToDateTime("09/01/2016");

            //Act
            result_task = shippingStationOrder.GetShipmentsByDate(lastDate);

            result_task.Wait();

            result = result_task.Result;

            //Assert
            //Assert.IsTrue(result.Count > 0);
        }
        public void ShouldPostShipmentFromShipStationByOrderNumber()
        {
            //Arrange
            var        shippingStationOrder = new ShipStationOrders();
            Task <int> result_task;
            int        result      = 0;
            var        orderNumber = "114-9161886-9469832";

            //Act
            result_task = shippingStationOrder.PostTrackingNumberAndCostByOrderNumber(orderNumber);

            result_task.Wait();

            result = result_task.Result;

            //Assert
            Assert.True(result > 0);
        }
        //[TestMethod]
        public void ShouldGetShipmentFromShipStationByOrderNumber()
        {
            //Arrange
            var shippingStationOrder = new ShipStationOrders();
            var orderNumber          = "	4872157";
            Task <ShipStationShipmentViewModel> result_task;
            ShipStationShipmentViewModel        result = null;

            //Act
            result_task = shippingStationOrder.GetShipmentsByOrderNumber(orderNumber);

            result_task.Wait();

            result = result_task.Result;

            //Assert
            //Assert.IsTrue(result != null);
        }
        /// <summary>
        ///	Downloads orders page
        /// </summary>
        /// <param name="endpoint">API endpoint</param>
        /// <param name="page">page index</param>
        /// <param name="pageSize">page size</param>
        /// <param name="token">cancellation token</param>
        /// <returns></returns>
        private async Task <PageResponse <ShipStationOrder> > DownloadOrdersPageAsync(string endPoint, int page, int pageSize, CancellationToken token)
        {
            var ordersPage     = new PageResponse <ShipStationOrder>();
            var nextPageParams = ParamsBuilder.CreateGetNextPageParams(new ShipStationCommandConfig(page, pageSize));
            var ordersEndPoint = endPoint.ConcatParams(nextPageParams);

            ShipStationOrders response = null;

            try
            {
                await ActionPolicies.GetAsync.Do(async() =>
                {
                    response = await this._webRequestServices.GetResponseAsync <ShipStationOrders>(ShipStationCommand.GetOrders, ordersEndPoint, token, _timeouts[ShipStationOperationEnum.ListOrders]).ConfigureAwait(false);
                });
            }
            catch (WebException e)
            {
                if (this._webRequestServices.CanSkipException(e))
                {
                    ordersPage.HasInternalError = true;
                    return(ordersPage);
                }
            }

            if (response == null)
            {
                return(ordersPage);
            }

            ordersPage.TotalPages    = response.TotalPages;
            ordersPage.TotalEntities = response.TotalOrders;

            if (response.Orders != null && response.Orders.Any())
            {
                ordersPage.Data.AddRange(response.Orders);
            }

            return(ordersPage);
        }
Example #14
0
        public async Task <ShipStationOrders> GetOrders(string status, DateTime createDateStart, int page)
        {
            Logger.Log("Ship Station Get Orders for status " + status +
                       ", Create Start Date " + createDateStart.ToString() +
                       " and Page " + page.ToString(), Status.INFO);

            UriBuilder UriBuilder = new UriBuilder(BaseUrl);

            UriBuilder.Path += "/orders";
            UriBuilder.Query = new StringBuilder()
                               .Append("orderStatus=").Append(status)
                               .Append("&").Append("page=").Append(page)
                               .Append("&").Append("createDateStart=").Append(createDateStart)
                               .ToString();

            HttpResponseMessage HttpResponse = await HttpClient.GetAsync(UriBuilder.Uri);

            if (HttpResponse.IsSuccessStatusCode)
            {
                var ResponseContent = await HttpResponse.Content.ReadAsStringAsync();

                ShipStationOrders ShipStationOrders =
                    JsonConvert.DeserializeObject <ShipStationOrders>(ResponseContent);

                string Message = String.Concat("Ship Station Get Orders Success");
                Logger.Log(Message, Status.INFO);

                return(ShipStationOrders);
            }
            else
            {
                string Message = String.Concat("Error occurred, the status code is: ", HttpResponse.StatusCode);
                Logger.Log(Message, Status.ERROR);
                return(new ShipStationOrders());
            }
        }
Example #15
0
        public List <ShipStationOrder> GetOrders(OrderStatus status)
        {
            Logger.Log("Get Orders from Ship Station with status " + status, Status.INFO);
            List <ShipStationOrder> OrderList = new List <ShipStationOrder>();

            DateTime          StartDate         = DateTime.Now.AddDays(-5);
            string            OrderStatus       = AppUtils.ToOrderStatusString(status);
            ShipStationOrders ShipStationOrders =
                Task.Run(async() => await ShipStationClientService.GetOrders(
                             OrderStatus, StartDate, 1)).Result;

            if (ShipStationOrders.Orders == null)
            {
                return(OrderList);
            }
            OrderList.AddRange(ShipStationOrders.Orders);

            int  Page  = 2;
            uint Pages = ShipStationOrders.Pages;

            while (Page <= Pages)
            {
                ShipStationOrders NextPage =
                    Task.Run(async() => await ShipStationClientService.GetOrders(
                                 OrderStatus, StartDate, Page)).Result;

                OrderList.AddRange(ShipStationOrders.Orders);

                Page++;

                Logger.Log("Orders Page Requested, Page " + Page.ToString() +
                           " out of Pages " + Pages.ToString(), Status.DEBUG);
            }

            return(OrderList);
        }
Example #16
0
        private static void ExecuteMainProcess()
        {
            Console.Title = ConfigurationManager.AppSettings["AppName"].ToString();

            Console.WriteLine("Enter the start date of fetching the orders (yyyy-mm-dd).");
            var dateStr = Console.ReadLine();

            DateTime orderCreatedAfter = DateTime.Now.Date;

            if (!string.IsNullOrEmpty(dateStr))
            {
                orderCreatedAfter = Convert.ToDateTime(dateStr);
            }

            Console.WriteLine("Starting the MWS Orders server...");
            var  ordersManager    = initMarketplaceManager();
            var  inventoryManager = new ProductInventoryManager();
            bool isKeepRunning    = true;

            while (isKeepRunning)
            {
                Console.WriteLine("Fetch the orders from marketplaces and insert them to the database...");
                // fetch the orders from marketplaces and insert them to the database
                var orders = ordersManager.DownloadMarketplaceOrders(orderCreatedAfter.AddHours(-3));

                Console.WriteLine("Let's do the product inventory update based on the orders...");
                // let's do the vendor product inventory update based on the orders
                inventoryManager.UpdateOrderVendorProductInventory(orders);

                Console.WriteLine("Starting to post unshipped orders to ShipStation...");
                // post unshipped orders to ShipStation
                using (var shippingStationOrder = new ShipStationOrders())
                {
                    var result_task = shippingStationOrder.PostOrderToShippingStation();
                    result_task.Wait();
                    var result = result_task.Result; //result returns the number of unshipped orders posted

                    Console.WriteLine("Done posting unshipped orders to ShipStation.");
                    Console.WriteLine("Total items posted to ShipStation: " + result.ToString());

                    // get track number and cost
                    Console.WriteLine("Starting to get tracking number and cost from ShipStation...");
                    result_task = shippingStationOrder.PostTrackingNumberAndCost();
                    result      = result_task.Result;

                    Console.WriteLine("Done retreving shipment data from ShipStation.");
                    Console.WriteLine("Total items acquired from ShipStation: " + result.ToString());
                }

                // send confirm shipment to all orders
                ordersManager.ConfirmOrdersShipment();

                // let's sleep for 1 minutes
                Console.WriteLine("The program goes to sleep for 1 minute...");
                Thread.Sleep(60000);

                // let's set the orderCreated to today's date
                orderCreatedAfter = DateTime.UtcNow.Date;
            }

            Console.WriteLine("MWS Orders manager server end.");
            Console.ReadKey(true);
        }