Beispiel #1
0
        /// <summary>
        /// 添加购物车
        /// </summary>
        /// <returns></returns>
        public async Task <IActionResult> OnPostAsync(int id)
        {
            if (!_loginedService.isLogined().Result)
            {
                return(RedirectToPage("/SignOn/SignOn"));
            }
            else
            {
                ViewModel.Book = await _context
                                 .Book
                                 .FirstOrDefaultAsync(m => m.BookId == id);

                ViewModel.Similar = await _context
                                    .Book
                                    .Take(2).ToListAsync();

                if (ModelState.IsValid)
                {
                    if (ViewModel.Book.Quantity < ViewModel.OrderQuantity)
                    {
                        return(Content("<script >alert('剩余库存不足,请调整购物量');</script >", "text/html"));
                    }
                    order = _orderService.GetById(_userService.GetAll().Result.Find(x => x.UserName == _loginedService.GetUserName().Result).UserId).Result.FirstOrDefault();
                    if (order == null)
                    {
                        order = new Order()
                        {
                            UserId = await _userService.GetId(_loginedService.GetUserName().Result)
                        };
                        await _orderService.Add(order);
                    }
                    if (_purchaseService.FindByBookid(order.OrderNo, id).Result)
                    {
                        await _purchaseService.AddBook(order.OrderNo, id, ViewModel.OrderQuantity);

                        return(RedirectToPage("/ShoppingCart/ShoppingCart"));
                    }
                    purchase = new Purchase()
                    {
                        BookId    = id,
                        OrderNo   = order.OrderNo,
                        PurQuan   = ViewModel.OrderQuantity,
                        PurPrice  = ViewModel.Book.UnitPrice,
                        PurStatus = 0
                    };
                    await _purchaseService.Add(order.OrderNo, purchase);

                    return(RedirectToPage("/ShoppingCart/ShoppingCart"));
                }
            }
            //Something went wrong
            return(Page());
        }