using System; using System.Collections.Generic; using System.Linq; using System.Windows; using System.Windows.Controls; using Cafe.ElementsWindows; namespace Cafe.AddWindows { public partial class AddOrderWindow : Window { public AddOrderWindow() { InitializeComponent(); DishesBox.ItemsSource = Connection.db.Dishes.Select(item => item.Name).ToList(); TablesBox.ItemsSource = Connection.db.Tables.Select(item => item.ID).ToList(); } private void DeliteDishClick(object sender, RoutedEventArgs e) { DishesList.Items.Remove((Dishes)DishesList.SelectedItem); } private void DishesListSelectionChanged(object sender, SelectionChangedEventArgs e) { int idDish = Connection.db.Dishes.Where(item => item.ID == ((Dishes)DishesList.SelectedItem).ID).Select(item => item.ID).FirstOrDefault(); DishWindow dishWindow = new DishWindow(idDish); dishWindow.Show(); this.Close(); } private void AddDishClick(object sender, RoutedEventArgs e) { if (DishesBox.SelectedItem == null) { ErrorWindow errorWindow = new ErrorWindow("не выбрано блюдо"); errorWindow.Show(); return; } Dishes dish = Connection.db.Dishes.Where(item => item.Name == DishesBox.SelectedItem.ToString()).FirstOrDefault(); DishesList.Items.Add(dish); SumOfOrder.Content = Convert.ToString(Convert.ToDecimal(SumOfOrder.Content) + dish.Price); } private void ToOrderClick(object sender, RoutedEventArgs e) { if (DishesList.Items == null) { ErrorWindow errorWindow = new ErrorWindow("не выбрано ни одного блюда"); errorWindow.Show(); return; } if (TablesBox.SelectedItem == null) { ErrorWindow errorWindow = new ErrorWindow("не выбран столик"); errorWindow.Show(); return; } Exchange exchange = GetExchange(); if (exchange is null) { ErrorWindow errorWindow = new ErrorWindow("сейчас нет смены"); errorWindow.Show(); return; } int idTable = Convert.ToInt32(TablesBox.SelectedItem.ToString()); Orders order = new Orders() { IDEmployeeExchange = Connection.db.EmployeesExchanges.Where(item => item.IDExchange == exchange.ID && item.IDEmployee == User.IDUser).Select(item => item.ID).FirstOrDefault(), IDTable = Connection.db.Tables.Where(item => item.ID == idTable).Select(item => item.ID).FirstOrDefault(), Time = DateTime.Now, SumOfOrder = Convert.ToDecimal(SumOfOrder.Content), IsPaid = false, IsReady = false }; Connection.db.Orders.Add(order); Connection.db.SaveChanges(); int idOrder = Connection.db.Orders.Select(item => item.ID).ToList().Last(); foreach (var item in DishesList.Items) { OrderDishes orderDishes = new OrderDishes() { IDOrder = idOrder, IDDish = ((Dishes)item).ID }; Connection.db.OrderDishes.Add(orderDishes); Connection.db.SaveChanges(); } MainWindow mainWindow = new MainWindow(); mainWindow.Show(); this.Close(); } private Exchange GetExchange() { DateTime now = DateTime.Now; return Connection.db.Exchange.Where(item => item.Date == now.Date && item.TimeOfBegin <= now.TimeOfDay && item.TimeOfEnd >= now.TimeOfDay).FirstOrDefault(); } private void BackButtonClick(object sender, RoutedEventArgs e) { MainWindow mainWindow = new MainWindow(); mainWindow.Show(); this.Close(); } } }