Пример #1
0
        private List <OrderModel> getOrderModelListFilterBy(string filterName)
        {
            object _lock = new object();
            ConcurrentBag <OrderModel> result = new ConcurrentBag <OrderModel>();

            lock (_lock)
                if (OrderModelList != null && OrderModelList.Count > 0)
                {
                    switch (filterName)
                    {
                    case "WaitValidClientOrderList":
                        result = new ConcurrentBag <OrderModel>(OrderModelList.Where(x => x.TxtStatus.Equals(EOrderStatus.Pre_Client_Validation.ToString())).ToList());
                        break;

                    case "InProcessOrderList":
                        result = new ConcurrentBag <OrderModel>(OrderModelList.Where(x => x.TxtStatus.Equals(EOrderStatus.Order.ToString()) || x.TxtStatus.Equals(EOrderStatus.Credit.ToString())).ToList());
                        break;

                    case "WaitValidOrderList":
                        result = new ConcurrentBag <OrderModel>(OrderModelList.Where(x => x.TxtStatus.Equals(EOrderStatus.Pre_Order.ToString()) || x.TxtStatus.Equals(EOrderStatus.Pre_Credit.ToString())).ToList());
                        break;

                    case "ClosedOrderList":
                        result = new ConcurrentBag <OrderModel>(OrderModelList.Where(x => x.TxtStatus.Equals(EOrderStatus.Order_Close.ToString()) || x.TxtStatus.Equals(EOrderStatus.Credit_CLose.ToString())).ToList());
                        break;

                    case "WaitPayOrderList":
                        result = new ConcurrentBag <OrderModel>(OrderModelList.Where(x => x.TxtStatus.Equals(EOrderStatus.Bill_Order.ToString()) || x.TxtStatus.Equals(EOrderStatus.Bill_Credit.ToString())).ToList());
                        break;
                    }
                }

            return(result.ToList());
        }
Пример #2
0
        public async Task deleteOrderDataAsync(OrderModel orderModel)
        {
            if (await Singleton.getDialogueBox().showAsync("do you really want to delete this order (" + orderModel.TxtID + ")"))
            {
                List <Bill> billFoundList = await Bl.BlOrder.GetBillDataByOrderListAsync(new List <Entity.Order> {
                    orderModel.Order
                });

                if (billFoundList.Count() == 0 || await OrderDetailViewModel.checkIfLastBillAsync(billFoundList.Select(x => new BillModel {
                    Bill = x
                }).ToList()))
                {
                    Singleton.getDialogueBox().showSearch(ConfigurationManager.AppSettings["delete_message"]);

                    OrderDetailViewModel.OrderSelected = orderModel;
                    var order_itemModelFoundList = OrderDetailViewModel.Order_ItemListToModelViewList(Bl.BlOrder.GetOrder_itemByOrderList(new List <Entity.Order> {
                        orderModel.Order
                    }));
                    var deliveryFoundList = Bl.BlOrder.GetDeliveryDataByOrderList(new List <Entity.Order> {
                        orderModel.Order
                    });
                    var Item_deliveryFoundList = Bl.BlItem.GetItem_deliveryDataByDeliveryList(deliveryFoundList);
                    var tax_orderFoundList     = Bl.BlOrder.GetTax_orderDataByOrderList(new List <Entity.Order> {
                        orderModel.Order
                    });

                    // deleting everything generated by this order
                    await Bl.BlOrder.DeleteTax_orderAsync(tax_orderFoundList);

                    await Bl.BlItem.DeleteItem_deliveryAsync(Item_deliveryFoundList);

                    await Bl.BlOrder.DeleteDeliveryAsync(deliveryFoundList);

                    await Bl.BlOrder.DeleteBillAsync(billFoundList);

                    await Bl.BlOrder.DeleteOrder_itemAsync(order_itemModelFoundList.Select(x => x.Order_Item).ToList());

                    await Bl.BlOrder.DeleteOrderAsync(new List <Entity.Order> {
                        orderModel.Order
                    });

                    // unlock the item to allow deletion
                    OrderDetailViewModel.lockOrUnlockedOrder_itemItems(order_itemModelFoundList, isLocked: false);

                    OrderModelList.Remove(orderModel);
                    updateOrderModelListBinding();
                    Singleton.getDialogueBox().IsDialogOpen = false;
                }
                else
                {
                    await Singleton.getDialogueBox().showAsync("Order invoice is not the latest.");
                }
            }
        }