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"));
        }
Ejemplo n.º 2
0
        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();
            }
        }