public ActionResult Create() { if (Session["UserId"] == null) { return(RedirectToAction("index", "Home")); } var userId = int.Parse(Session["UserId"].ToString()); var cartSession = Session["Cart"]; var cartJson = ""; if (cartSession != null) { cartJson = cartSession.ToString(); } var sum = cartService.GetPrice(cartJson); Order order = new Order { UserId = userId, Sum = sum }; db.Orders.Add(order); db.SaveChanges(); var cart = Newtonsoft.Json.JsonConvert.DeserializeObject <Cart>(cartJson); foreach (CartItem item in cart.CartItems) { Game game = db.Games.Find(item.GameId); OrderGames orderGames = new OrderGames { OrderId = order.Id, GameId = item.GameId, Price = game.Price }; db.OrderGames.Add(orderGames); } db.SaveChanges(); Session["Cart"] = null; return(RedirectToAction("Index", "Home")); }
protected override void InTransaction() { if (_cartModel == null && _gameModel == null) { Errors.Add("Name", "Корзина пуста"); } else { UserEmailMessage mail = new UserEmailMessage { Date = DateTime.Now, Phone = _phone, Message = _message, Username = _name, Type = _type }; Context.Emails.Add(mail); Order order = new Order { Date = DateTime.Now, UserEmailMessage = mail, OrderGames = new List <OrderGames>(), OrderProducts = new List <OrderProducts>(), }; if (_cartModel != null) { foreach (var item in _cartModel) { var el = Context.Products.FirstOrDefault(x => !x.Deleted && x.Id == item.Id); if (el != null) { var prod = new OrderProducts() { Product = el, Quantity = item.Quantity, Order = order, }; Context.OrderProducts.Add(prod); } } } if (_gameModel != null) { foreach (var item in _gameModel) { var el = Context.Games.FirstOrDefault(x => !x.Deleted && x.ParrentId == item.Id && x.DayOfWeek == item.Date.DayOfWeek); if (el != null) { var prod = new OrderGames() { Game = el, Quantity = item.Quantity, Date = item.Date, }; Context.OrderGames.Add(prod); } } } Context.Orders.Add(order); Context.SaveChanges(); Send(); } }