Exemplo n.º 1
0
 private void GetSum()
 {
     Price = 0;
     if (OrderedPartsList != null)
     {
         Price = Convert.ToDecimal(OrderedPartsList.Sum(p => p.Part.Price * p.Amount));
     }
     else
     {
         MessageBox.Show("Корзина пуста");
     }
 }
Exemplo n.º 2
0
        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();
                }
            });
        }
Exemplo n.º 3
0
 private void ClearAllFields()
 {
     OrderedPartsList.Clear();
     Price = 0;
 }