private void ProcessOrderReponse(TrackOrderModel order, ResponseRd response)
        {
            try
            {
                using (var repository = new StoreRepository())
                {
                    repository.Db.Configuration.ValidateOnSaveEnabled = false;
                    if (response != null && response.IsSuccess && response.Order != null && String.IsNullOrWhiteSpace(response.Order.statusField) == false)
                    {
                        if (order.LastStatus == response.Order.statusField)
                        {
                            return;
                        }

                        repository.UpdateOrderStatus(order.OrderToStoreId, response.Order.statusField, response.Order.promiseTimeField.ToDateTimeSafe());
                        return;
                    }

                    if (response != null && response.IsSuccess == false)
                    {
                        _eventLog.WriteEntry(String.Format("Order Call Failed OrderId: {0} AtoOrderId: {1}  - Error: {2} | {3}", order.OrderToStoreId, order.AtoOrderId,
                                                           String.IsNullOrWhiteSpace(response.ExcMsg) ? "" : response.ErrMsg, String.IsNullOrWhiteSpace(response.ResultData) ? "" : response.ResultData), EventLogEntryType.Warning);
                    }

                    repository.UpdateOrderStatusFailedRetrieve(order.OrderToStoreId, order.FailedStatusCounter);
                }
            }
            catch (Exception ex)
            {
                _eventLog.WriteEntry(ex.Message + " -ST- " + ex.StackTrace, EventLogEntryType.Error);
            }
        }
示例#2
0
        public IActionResult OrderTrack(TrackOrderModel modelIn)
        {
            var orderServices     = new OrderServices();     //methods
            var orderDateServices = new OrderDataServices(); //database

            bool emailValidation = orderServices.IsEmailValid(modelIn.EmailAddress);

            if (emailValidation == false)
            {
                ModelState.AddModelError(string.Empty, "Invalid Email");
            }


            bool orderNumberValidation = orderServices.IsOrderNumberValid(modelIn.OrderNumber);

            if (orderNumberValidation == false)
            {
                ModelState.AddModelError(string.Empty, "Invalid Order Number");
            }

            if (emailValidation == false || orderNumberValidation == false)
            {
                return(View(modelIn));
            }


            string orderStatus = orderServices.GetOrderDetails(modelIn.EmailAddress, modelIn.OrderNumber, orderDateServices);

            OrderStatusModel orderStatusModel = new OrderStatusModel();

            orderStatusModel.OrderStatus = orderStatus;

            return(View("OrderStatus", orderStatusModel));
        }
 private Task ExecuteGetOrderStatus(TrackOrderModel order, UpdateOrderClient conn, CancellationToken token)
 {
     return(Task.Run(() =>
     {
         var response = conn.CallWsGetOrder(long.Parse(order.AtoOrderId), _eventLog);
         ProcessOrderReponse(order, response);
     }, token));
 }
示例#4
0
        public void TestController()
        {
            //Arrange
            var trackOrderModel = new TrackOrderModel();
            var orderController = new OrderController();

            trackOrderModel.EmailAddress = "*****@*****.**";
            trackOrderModel.OrderNumber  = "123";

            //Act
            var result = orderController.OrderTrack(trackOrderModel);

            //Assert
            Assert.AreEqual("OrderStatus", ((Microsoft.AspNetCore.Mvc.ViewResult)result).ViewName);
        }