Esempio n. 1
0
        private void DeleteOrder_Button_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                var index = dataGrid_Orders.SelectedIndex;
                // Проверка на то, что была выделена ячейка
                if (index > -1)
                {
                    if (MessageBox.Show("Вы действительно хотите удалить заказ?", "Удаление заказа", MessageBoxButton.YesNo, MessageBoxImage.Warning) == MessageBoxResult.Yes)
                    {
                        // При выборе строки получение ID заказа
                        object item           = dataGrid_Orders.SelectedItem;
                        int    orders_id_temp = Convert.ToInt32((dataGrid_Orders.SelectedCells[0].Column.GetCellContent(item) as TextBlock).Text);

                        // Определение list_of_order_items
                        int list_of_order_items_temp = 0;

                        using (OrdersdbEntities db = new OrdersdbEntities())
                        {
                            list_of_order_items_temp = db.Orders.Where(x => x.orders_id == orders_id_temp).Select(x => x.list_of_order_items).DefaultIfEmpty().Single();
                            Debug.WriteLine(list_of_order_items_temp);

                            //List_of_order_items list_of_order_items = new List_of_order_items() { list_of_order_items__id = list_of_order_items_temp };
                            //db.List_of_order_items.Attach(list_of_order_items);
                            //db.List_of_order_items.Remove(list_of_order_items);
                            //db.SaveChanges();

                            db.Database.ExecuteSqlCommand("DELETE FROM [dbo].[List_of_order_items] WHERE [list_of_order_items__id] = {0}", new object[] { list_of_order_items_temp });
                        }

                        using (OrdersdbEntities db = new OrdersdbEntities())
                        {
                            Order order = new Order()
                            {
                                orders_id = orders_id_temp
                            };
                            db.Orders.Attach(order);
                            db.Orders.Remove(order);
                            db.SaveChanges();
                        }

                        Load_dataGrid_Orders();
                        dataGrid_List_of_order_items.ItemsSource = null;
                    }
                }
            }
            catch (Exception e2)
            {
                MessageBox.Show(e2.Message, "DeleteOrder_Button_Click", MessageBoxButton.OK, MessageBoxImage.Error);
            }
        }
Esempio n. 2
0
        private void SaveEditOrder_Button_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                using (OrdersdbEntities db = new OrdersdbEntities())
                {
                    // 1. Внесение изменений в таблицу Order
                    if (TextBox_NameClient.Text != "")
                    {
                        var nameClient = db.Orders
                                         .Where(x => x.orders_id == orders_id_temp_EditOrder)
                                         .FirstOrDefault();

                        nameClient.name_client = TextBox_NameClient.Text;
                        db.SaveChanges();

                        // 2. Внесение изменений в таблицу List_of_order_items
                        // Удаление существующих записей с ID: list_of_order_items_temp_EditOrder

                        //   var list_of_order_items_temp = db.List_of_order_items
                        //       .Where(x => x.list_of_order_items__id == list_of_order_items_temp_EditOrder)
                        //       .FirstOrDefault();
                        //db.List_of_order_items.Remove(list_of_order_items_temp);
                        //db.SaveChanges();
                        db.Database.ExecuteSqlCommand("DELETE FROM [dbo].[List_of_order_items] WHERE [list_of_order_items__id] = {0}", new object[] { list_of_order_items_temp_EditOrder });


                        // Выборка данных из List_of_order_items и запись в таблицу List_of_order_items

                        //foreach (var item in dataGrid_EditOrder.Items.OfType<Item>())
                        //{
                        //    List_of_order_items list_of_order_items = new List_of_order_items();
                        //    list_of_order_items.list_of_order_items__id = list_of_order_items_temp_EditOrder;
                        //    list_of_order_items.item_product_id = item.product_id;
                        //    list_of_order_items.item_count = Convert.ToInt32(item.item_count);

                        //    db.List_of_order_items.Add(list_of_order_items);
                        //}

                        foreach (var u in col)
                        {
                            //dataGrid_EditOrder.Items.Add(new Item() { product_id = u.product_id, product_name = u.product_name, item_count = u.item_count1.ToString() });
                            List_of_order_items list_of_order_items = new List_of_order_items();
                            list_of_order_items.list_of_order_items__id = list_of_order_items_temp_EditOrder;
                            list_of_order_items.item_product_id         = db.Products.Where(x => x.product_name == u.product_name).Select(x => x.product_id).FirstOrDefault();
                            list_of_order_items.item_count = Convert.ToInt32(u.item_count);
                            db.List_of_order_items.Add(list_of_order_items);
                        }

                        db.SaveChanges();


                        // Закрытие окна
                        MessageBox.Show("Данные успешно изменены", "Информация", MessageBoxButton.OK, MessageBoxImage.Information);
                        this.Close();
                    }
                    else
                    {
                        MessageBox.Show("Поле \"ФИО клиента\" пустое", "Ошибка", MessageBoxButton.OK, MessageBoxImage.Error);
                    }
                }
            }
            catch (Exception e1)
            {
                MessageBox.Show(e1.Message, "SaveEditOrder_Button_Click", MessageBoxButton.OK, MessageBoxImage.Error);
            }
        }
Esempio n. 3
0
        private void CreateOrder_Button_Click(object sender, RoutedEventArgs e)
        {
            // id списка позиций клиента
            int list_of_order_itemsMAX = 0;

            try
            {
                using (OrdersdbEntities db = new OrdersdbEntities())
                {
                    // Получить максимальное число list_of_order_items
                    list_of_order_itemsMAX = db.Orders.Select(x => x.list_of_order_items).Max();
                }
            }
            catch (Exception e1)
            {
                MessageBox.Show(e1.Message, "Exception", MessageBoxButton.OK, MessageBoxImage.Error);
            }
            list_of_order_itemsMAX++;

            // Проверка заполнения полей формы
            if (NameClient_TextBox.Text == "" || dataGrid_List_of_order_items.Items.Count == 0)
            {
                MessageBox.Show("Введите в поле ФИО клиента значение или у Вас 0 позиций заказа", "Warning", MessageBoxButton.OK, MessageBoxImage.Warning);
            }
            else
            {
                try
                {
                    // Выборка данных из dataGrid_List_of_order_items и запись в таблицу List_of_order_items
                    foreach (var item in dataGrid_List_of_order_items.Items.OfType <Item>())
                    {
                        List_of_order_items list_of_order_items = new List_of_order_items();
                        list_of_order_items.list_of_order_items__id = list_of_order_itemsMAX;
                        list_of_order_items.item_product_id         = item.product_id;
                        list_of_order_items.item_count = Convert.ToInt32(item.item_count);

                        using (OrdersdbEntities db = new OrdersdbEntities())
                        {
                            db.List_of_order_items.Add(list_of_order_items);
                            db.SaveChanges();
                        }
                    }

                    // Подготовка и запись в таблицу Order
                    Order order = new Order();
                    order.date                = DateTime.Now;
                    order.name_client         = NameClient_TextBox.Text;
                    order.list_of_order_items = list_of_order_itemsMAX;

                    using (OrdersdbEntities db = new OrdersdbEntities())
                    {
                        db.Orders.Add(order);
                        db.SaveChanges();
                    }

                    MessageBox.Show("Данные успешно обновлены", "Информация", MessageBoxButton.OK, MessageBoxImage.Information);

                    // Обновить датагрид
                    //MainWindow wnd = new MainWindow();
                    //wnd.Load_dataGrid_Orders();

                    // закрыть окно
                    this.Close();
                }
                catch (Exception e1)
                {
                    MessageBox.Show(e1.Message, "Exception", MessageBoxButton.OK, MessageBoxImage.Error);
                }
            }
        }