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()); }
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."); } } }