private void GetSum() { Price = 0; if (OrderedPartsList != null) { Price = Convert.ToDecimal(OrderedPartsList.Sum(p => p.Part.Price * p.Amount)); } else { MessageBox.Show("Корзина пуста"); } }
public CartViewModel(MainViewModel mainViewModel) { OrderedPartsList = mainViewModel.PartsToAdd; GetSum(); uoW = new UnitOfWork.UnitOfWork(new JPartsContext()); AddOrderCommand = new RelayCommand(o => { try { if (OrderedPartsList.Count > 0) { //Order order = new Order(mainViewModel.AuthorisedClient.ClientID, new List<Part>(OrderedPartsList), // mainViewModel.AuthorisedClient.AddressID, Price, false, DateTime.Now); var newOrder = new Order() { ClientID = mainViewModel.AuthorisedClient.ClientID, PartsOrders = new List <PartsOrders>(), AddressID = mainViewModel.AuthorisedClient.AddressID, Price = this.Price, Status = false, OrderDate = DateTime.Now }; foreach (var el in OrderedPartsList) { newOrder.PartsOrders.Add(new PartsOrders { Order = newOrder, Part = uoW.Parts.Get(el.Part.PartID), Amount = el.Amount }); } uoW.Orders.Add(newOrder); uoW.Complete(); foreach (var el in OrderedPartsList) { uoW.Parts.Get(el.Part.PartID).Amount -= el.Amount; } uoW.Complete(); ClearAllFields(); if (mainViewModel.AuthorisedClient.IsAdmin == true) { mainViewModel.OrdersVM.LoadOrders(); } else { mainViewModel.OrdersVM.LoadClientsOrders(mainViewModel.AuthorisedClient.ClientID); } mainViewModel.CatalogVM.DefaultList.Clear(); mainViewModel.CatalogVM.PartsList.Clear(); foreach (var p in uoW.Parts.GetAllParts()) { mainViewModel.CatalogVM.DefaultList.Add(new CartPart(p, p.Amount)); } mainViewModel.CatalogVM.PartsList = mainViewModel.CatalogVM.DefaultList; MessageBox.Show("Заказ успешно добавлен"); } else { MessageBox.Show("Не выбрано ни одного товара"); } } catch (Exception e) { MessageBox.Show(e.Message); } }, param => CanAdd); DeletePartCommand = new RelayCommand(o => { if (o != null) { var PartToDelete = o as CartPart; OrderedPartsList.Remove(PartToDelete); mainViewModel.PartsToAdd.Remove(PartToDelete); mainViewModel.CatalogVM.PartsToAdd.Remove(PartToDelete); GetSum(); } }); }
private void ClearAllFields() { OrderedPartsList.Clear(); Price = 0; }