//刷新指定订单
        private void RefreshOrders(ResponseAfterSaleOrder order)
        {
            IsBusy = true;

            Action action = () => CommunicateManager.Invoke <IOrderService>(service =>
            {
                var data = service.GetSaleOrderBySearch(1, 1, "", "", null, null, null, null, "", null, null, order.Id);
                if (data.List == null)
                {
                    return;
                }

                DispatcherHelper.UIDispatcher.Invoke(new Action(() =>
                {
                    try
                    {
                        var index     = Orders.IndexOf(Orders.FirstOrDefault(p => p.Id == order.Id));
                        Orders[index] = data.List[0];
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.Message);
                        //throw;
                    }
                }));
            }, UIManager.ShowErr);

            Task.Factory.StartNew(action).ContinueWith(task =>
            {
                Action setBusyAction = () => { IsBusy = false; };
                DispatcherHelper.UIDispatcher.Invoke(setBusyAction);
            });
        }
        /// <summary>
        /// 售后订单详情
        /// </summary>
        /// <param name="saleorderid"></param>
        /// <returns></returns>
        public PartialViewResult SaleOrderDetail(int saleorderid, int isProcess = -1)
        {
            if (isProcess == -1)
            {
                ViewBag.Process = true;//查看详情
            }
            else
            {
                ViewBag.Process = false;
            }
            ResponseAfterSaleOrder model = null;

            CommunicateManager.Invoke <IStationOrderService>(p => model = p.AfterSaleOrderDetail(saleorderid));
            return(PartialView(model));
        }
 /// <summary>
 /// 售后订单详情页面
 /// </summary>
 public JsonResult AfterSaleOrderDetail(int Id)
 {
     using (var cf = new ChannelFactory <IStationOrderService>(typeof(IStationOrderService).Name))
     {
         var _service = cf.CreateChannel();
         //ResponseAfterSaleOrder orderDetail = _service.AfterSaleOrderDetail(Id);
         //orderDetail.OrderStatusStr = GetDesc(((EnumOrderStatus)orderDetail.OrderStatus));
         //return View(orderDetail);
         ResponseAfterSaleOrder after = _service.AfterSaleOrderDetail(Id);
         if (after is ResponseAnnulOrder)
         {
             return(Json(new
             {
                 Detail = after,
                 Type = 2
             }));
         }
         if (after is ResponseBounceOrder)
         {
             return(Json(new
             {
                 Detail = after,
                 Type = 1
             }));
         }
         if (after is ResponseChangeOrder)
         {
             return(Json(new
             {
                 Detail = after,
                 Type = 3
             }));
         }
         if (after is ResponseModifyOrder)
         {
             return(Json(new
             {
                 Detail = after,
                 Type = 4
             }));
         }
         return(Json(""));
     }
 }
        private void ExecutePayCommand(ResponseAfterSaleOrder model)
        {
            //LocalUIManager.ShowAfterSalePay(model, isOk => RefreshOrders(model));
            IsBusy = true;
            Action action = () => DispatcherHelper.UIDispatcher.Invoke(new Action(() => CommunicateManager.Invoke <IOrderService>(service =>
            {
                var info = service.QueryAfterSaleOrderPayStatus(model.Id);
                if (info == "已支付")
                {
                    UIManager.ShowMessage("订单已支付");
                    RefreshOrders(model);
                    return;
                }
                LocalUIManager.ShowAfterSalePay(model, isOk => RefreshOrders(model));
            }, UIManager.ShowErr)));

            Task.Factory.StartNew(action).ContinueWith(task =>
            {
                Action setBusyAction = () => { IsBusy = false; };
                DispatcherHelper.UIDispatcher.Invoke(setBusyAction);
            });
        }
Exemple #5
0
        /// <summary>
        /// 显示改签支付窗体
        /// </summary>
        /// <param name="order"></param>
        /// <param name="call"></param>
        internal static void ShowAfterSalePay(ResponseAfterSaleOrder order, Action <bool?> call)
        {
            var window = new AfterSalePayWindow {
                Owner = Application.Current.MainWindow
            };

            var vm = new AfterSalePayViewModel {
                SourceOrder = order
            };

            vm.Initialize();

            window.DataContext = vm;
            var result = window.ShowDialog();

            if (call != null)
            {
                call(result);
            }

            window.DataContext = null;
        }
 private bool CanExecutePayCommand(ResponseAfterSaleOrder order)
 {
     return(true);
 }
 private void ExecutePayCommand(ResponseAfterSaleOrder order)
 {
     LocalUIManager.ShowAfterSalePay(order, isOk => Initialize());
 }
 private bool CanExecuteOpenInfoCommand(ResponseAfterSaleOrder saleOrder)
 {
     return(true);
 }
 private void ExecuteOpenInfoCommand(ResponseAfterSaleOrder saleOrder)
 {
     LocalUIManager.ShowAfterSaleInfo(saleOrder.OrderID, saleOrder.Id);
 }
 private bool CanExecutePayCommand(ResponseAfterSaleOrder model)
 {
     return(!IsBusy);
 }
 private void ExecuteOpenSendMsgCommand(ResponseAfterSaleOrder order)
 {
     LocalUIManager.ShowSendMsg(order.OrderID, order.Id);
 }