public async Task HandleItemDeleted(OrderItemListView obj) { ContentDialogResult result = await this.messageDialog.ShowAsync(); if (result == ContentDialogResult.Primary) { this.DeletOrderItem(obj); } }
public void DeletOrderItem(OrderItemListView orderItem) { int index = this.OrderItems.IndexOf(orderItem); this.OrderItems[index].ItemDeleteClicked -= this.HandleItemDeleted; this.OrderItems.RemoveAt(index); orderItem.Dispose(); RaisePropertyChanged("IsProceedEnabled"); }
private async void AddProduct(Product product) { this.decimalTextBox.Text = "1"; this.quantityDialog.Content = this.decimalTextBox; this.quantityDialog.Title = "Enter quantity"; ContentDialogResult result = await this.ShowQuantityDialog(); if (result == ContentDialogResult.Primary) { TextBox input = (TextBox)quantityDialog.Content; decimal.TryParse(input.Text, out decimal quantity); if (quantity == 0) { quantity = 1; } if (quantity <= product.Quantity) { if (OrderItems.Any(p => p.OrderItem.ProductId == product.ProductId)) { OrderItemListView existingItem = OrderItems.FirstOrDefault(p => p.OrderItem.ProductId == product.ProductId); int index = OrderItems.IndexOf(existingItem); existingItem.OrderItem.Quantity += quantity; OrderItemListView orderItemListView = this.GetDuplicatedItem(existingItem); OrderItems.RemoveAt(index); OrderItems.Insert(index, orderItemListView); } else { OrderItemListView orderItem = new OrderItemListView { OrderItem = new OrderItem { Product = product, ProductId = product.ProductId, Quantity = quantity, LineDiscount = 0, SubTotal = this.GetSubTotal(product.SellingPrice, quantity, 0) } }; orderItem.ItemDeleteClicked += this.HandleItemDeleted; OrderItems.Add(orderItem); } RaisePropertyChanged("OrderItems"); RaisePropertyChanged("IsProceedEnabled"); } else { this.messageDialog.Content = "Insufficient quantity !"; await this.messageDialog.ShowAsync(); } this.SearchText = product.Name; } this.SearchText = string.Empty; }
private OrderItemListView GetDuplicatedItem(OrderItemListView oldOrderItem) { OrderItemListView orderItemListView = new OrderItemListView { OrderItem = new OrderItem { Product = oldOrderItem.OrderItem.Product, ProductId = oldOrderItem.OrderItem.ProductId, Quantity = oldOrderItem.OrderItem.Quantity, LineDiscount = oldOrderItem.OrderItem.LineDiscount, SubTotal = oldOrderItem.OrderItem.SubTotal } }; orderItemListView.OrderItem.SubTotal = this.GetSubTotal(orderItemListView.OrderItem.Product.SellingPrice, orderItemListView.OrderItem.Quantity, orderItemListView.OrderItem.LineDiscount); orderItemListView.ItemDeleteClicked += this.HandleItemDeleted; oldOrderItem.ItemDeleteClicked -= this.HandleItemDeleted; return(orderItemListView); }
private void HandleCellEditEnded(DataGridCellEditEndingEventArgs obj) { if (obj.EditingElement is TextBox textBox) { string value = textBox.Text; if (decimal.TryParse(value, out decimal decimalValue)) { Enum.TryParse(obj.Column.Tag.ToString(), out OrderColumnType orderColumnType); int rowIndex = obj.Row.GetIndex(); OrderItemListView existingOrderItem = OrderItems[rowIndex]; existingOrderItem.OrderItem.GetType().GetProperty(orderColumnType.ToString()).SetValue(existingOrderItem.OrderItem, decimalValue); var column = orderColumnType.ToString(); OrderItemListView updatedOrderItem = this.GetDuplicatedItem(existingOrderItem); this.DeletOrderItem(existingOrderItem); this.OrderItems.Insert(rowIndex, updatedOrderItem); existingOrderItem.Dispose(); } } }