public static OrderParams AddOrderToDB(OrderToDB order) { using (var db = new GameStoreDBContext()) { var gameIDs_Count = new List <Tuple <int, int> >(); foreach (var game in order.games) { gameIDs_Count.Add(new Tuple <int, int>(GetGameIDByName(game.Item1), game.Item2)); } var currentClient = new Client() { Email = order.ClientMail, Name = order.ClientName }; db.Client.Add(currentClient); var currentOrder = new Order { Client_ID = currentClient.ID, Date = order.Date }; db.Order.Add(currentOrder); foreach (var gameID in gameIDs_Count) { var currentConnection = new Orders_Games() { Game_ID = gameID.Item1, Order_ID = currentOrder.ID, Games_number = gameID.Item2 }; db.Orders_Games.Add(currentConnection); var gameToReduceQuantity = (from game in db.Game where game.ID == gameID.Item1 select game).First(); gameToReduceQuantity.Quantity -= gameID.Item2; } db.SaveChanges(); var orderParams = new OrderParams() { Date = currentOrder.Date, ID = currentOrder.ID, games = ExtractGamesFromOrder(currentOrder) }; return(orderParams); } }
private void OrderButton_Click(object sender, EventArgs e) { if (CheckInputData()) { var currentOrder = new OrderToDB() { ClientName = nameTextBox.Text, ClientMail = mailTextBox.Text, Date = DateTime.Now, games = new List <Tuple <string, int> >() }; foreach (var game in (from game in UIController.currentOrderGames group game by game.Item1)) { currentOrder.games.Add(new Tuple <string, int>(game.Key, game.Count())); } var order = DBController.AddOrderToDB(currentOrder); MessageBox.Show($"Ваш заказ №{order.ID} успешно оформлен"); UIController.currentOrderGames.Clear(); var currentOrderToReport = DBController.GetOrderParamsByID(order.ID); ReportExportController.CreateReceipt(currentOrderToReport); DialogResult = DialogResult.OK; } }