Пример #1
0
        public bool PostBookToBasket(BookIdModel bookModel, int userId)
        {
            using (var db = new BookStoreContext())
            {
                var basketExists = db.Baskets.Any(x => x.UserId == userId && x.IsPayed != true);

                if (!basketExists)
                {
                    var newBasket = new Basket();
                    newBasket.UserId  = userId;
                    newBasket.IsPayed = false;
                    db.Baskets.Add(newBasket);
                    db.SaveChanges();

                    var newItem = new BasketItem();
                    newItem.BasketId = newBasket.Id;
                    newItem.BookId   = bookModel.BookId;
                    newItem.Count    = bookModel.Count;
                    db.BasketItems.Add(newItem);
                    db.SaveChanges();
                }
                else
                {
                    var basket     = db.Baskets.FirstOrDefault(x => x.UserId == userId && x.IsPayed != true);
                    var itemExists = db.BasketItems.Any(x => x.BookId == bookModel.BookId && x.BasketId == basket.Id);

                    if (itemExists)
                    {
                        var item = db.BasketItems.FirstOrDefault(x => x.BookId == bookModel.BookId);
                        item.Count += bookModel.Count;
                    }
                    else
                    {
                        var newItem = new BasketItem();
                        newItem.BasketId = basket.Id;
                        newItem.BookId   = bookModel.BookId;
                        newItem.Count    = bookModel.Count;
                        db.BasketItems.Add(newItem);
                    }
                    db.SaveChanges();
                }

                return(true);
            }
        }
Пример #2
0
        public IHttpActionResult PostBasket(BookIdModel bookIdModel)
        {
            CurrentUser loginModel = GetCurrentUser();

            return(Ok(PostBookToBasket(bookIdModel, loginModel.UserId)));
        }