示例#1
0
        public IActionResult IndexPost()
        {
            List <int> lstCartItems = HttpContext.Session.Get <List <int> >("ssShoppingCart");
            DateTime   d1           = DateTime.Now;

            ShoppingCartVM.Orders.ShopDate = d1.Date;

            Orders orders = ShoppingCartVM.Orders;

            _db.Orders.Add(orders);
            _db.SaveChanges();

            int orderId = orders.Id;

            foreach (int bookId in lstCartItems)
            {
                ProductsSelectedForOrder orderItems = new ProductsSelectedForOrder()
                {
                    OrderId = orderId,
                    BookId  = bookId
                };
                _db.ProductsSelectedForOrders.Add(orderItems);
            }
            _db.SaveChanges();
            lstCartItems = new List <int>();
            HttpContext.Session.Set("ssShoppingCart", lstCartItems);

            return(RedirectToAction("OrderConfirmation", "ShoppingCart", new { Id = orderId }));
        }
        public OrdersController(ApplicationDbContext db)
        {
            _db = db;
            CustomerAllOrdersVM = new CustomerAllOrdersViewModel()
            {
                OrderViewModelWithId = new List <OrderViewModelWithId>(),
                Filter = true
            };


            ProductsSelectedFOrder = new ProductsSelectedForOrder();
        }
        public async Task <IActionResult> EditOrderProduct(int?id, int ProductsOrder)
        {
            ProductsSelectedFOrder = await _db.ProductsSelectedForOrder.Where(x => x.Id == ProductsOrder).FirstOrDefaultAsync();

            if (ProductsSelectedFOrder == null)
            {
                return(NotFound());
            }


            return(View(ProductsSelectedFOrder));
        }
示例#4
0
        public async Task <IActionResult> ChooseAddressPost()
        {
            ShoppingCartVM = new ShoppingCartViewModel()
            {
                Products     = new List <Products>(),
                ShoppingCart = new List <ShoppingCart>(),
                Vat          = _db.Statics.Where(a => a.Name == "Vat").FirstOrDefault()
            };

            List <ShoppingCart> lstShoppingCart = HttpContext.Session.Get <List <ShoppingCart> >("ssShoppingCart");

            if (lstShoppingCart != null && lstShoppingCart.Count > 0)
            {
                foreach (ShoppingCart cartItem in lstShoppingCart)
                {
                    Products prod = await _db.Products.Include(p => p.ProductTypes).Include(p => p.SpecialTags).Where(p => p.Id == cartItem.ProductId).FirstOrDefaultAsync();

                    ShoppingCartVM.ShoppingCart.Add(cartItem);
                    ShoppingCartVM.Products.Add(prod);
                }
            }
            string UserId        = User.FindFirst(ClaimTypes.NameIdentifier).Value;
            int    ChooenAddress = CustomerAddressRole.SelectedRole;
            var    adrressDb     = await _db.CustomerAddresses.Where(x => x.Id == ChooenAddress).FirstOrDefaultAsync();

            Orders Order = new Orders()
            {
                PersonID    = UserId,
                Country     = adrressDb.Country,
                City        = adrressDb.City,
                Address     = adrressDb.Address,
                Phone       = adrressDb.Phone,
                OrderDate   = DateTime.Now,
                IsSent      = false,
                IsPaid      = false,
                OrderStatus = "Confirmed",
                Vat         = ShoppingCartVM.Vat.DoubleValue
            };

            _db.Orders.Add(Order);
            await _db.SaveChangesAsync();

            int OrderId = Order.Id;

            foreach (var Cart in ShoppingCartVM.ShoppingCart)
            {
                var prod = await _db.Products.Where(p => p.Id == Cart.ProductId).FirstOrDefaultAsync();

                ProductsSelectedForOrder productsSelectedForOrder = new ProductsSelectedForOrder()
                {
                    OrderId   = OrderId,
                    ProductId = Cart.ProductId,
                    Quantity  = Cart.Quantity,
                    Prise     = prod.Price
                };
                _db.ProductsSelectedForOrder.Add(productsSelectedForOrder);
            }

            List <ShoppingCart> lstShopping = new List <ShoppingCart>();

            HttpContext.Session.Set("ssShoppingCart", lstShopping);

            _db.CustomerShoppingCart.RemoveRange(_db.CustomerShoppingCart.Where(x => x.PersonID == UserId));

            await _db.SaveChangesAsync();

            return(RedirectToAction(nameof(OrderConfirmation), Order));
        }