public async Task <IActionResult> AddToCart(int?bookID, string controlla, string acta)
        {
            if (bookID == null)
            {
                return(View("NotFound"));
            }

            //Gets the user and their id.
            var user = await _userManager.GetUserAsync(User);

            var userID = user?.Id;

            //Creates the InputModel for the Cart.
            var newCartItem = new CartInputModel()
            {
                BookID = (int)bookID,
                UserID = userID,
            };

            //Adds this the cart connection from user to book.
            _cartService.AddCartItem(newCartItem);
            //Returns the user from where they came.
            if (acta == "Details")
            {
                return(RedirectToAction(acta, controlla, new { id = bookID }));
            }
            return(RedirectToAction(acta, controlla));
        }
Esempio n. 2
0
        public async Task <ActionResult <CartResponseModel> > Cart(CartInputModel input)
        {
            var userId  = this.userManager.GetUserId(this.User);
            var message = await this.cartsService.AddAsync(input.BeatId, userId);

            var count = this.cartsService.Count(userId);

            return(new CartResponseModel {
                Message = message, CartCount = count
            });
        }
Esempio n. 3
0
        public async Task <IActionResult> Checkout(CartInputModel model)
        {
            try
            {
                var cartItems      = this.mapper.Map <List <CartItemModel> >(model.Cart);
                var shippmentModel = await this.userService.CheckoutCartAsync(this.currentUserService.UserId, new CartModel(cartItems, model.DeliveryAddress));

                return(this.Ok(shippmentModel));
            }
            catch (CheckoutFailedException ex)
            {
                return(this.BadRequest(ex.Message));
            }
        }
        public JsonResult AddToCart(CartInputModel data)
        {
            var product = _repo.Find(data.ProductId);

            var cartItem = new CartItem();

            cartItem.ProductId   = product.Id;
            cartItem.Quantity    = data.Quantity;
            cartItem.Description = product?.Name;
            cartItem.SalesPrice  = (decimal)product?.ListPrice;

            _cartService.AddToCart(cartItem);

            var cartSession = _cartService.GetCart();


            return(Json(cartSession));
        }
        public async Task <IActionResult> UpdateCart(int bookID, int amount)
        {
            //Gets Current user.
            var user = await _userManager.GetUserAsync(User);

            var userID = user.Id;
            //makes an updated cart connection.
            var model = new CartInputModel()
            {
                UserID = userID,
                BookID = bookID,
                Amount = amount,
            };

            //updates cart with new connection.
            _cartService.UpdateConnection(model);
            //redirects users to cart after the updating.
            return(RedirectToAction("Cart", "Account"));
        }
Esempio n. 6
0
        //Adds Book to Cart.
        public void AddCartItem(CartInputModel model)
        {
            //Test if Connection is made.
            var allConnections = (from c in _db.UserBookCartConnections
                                  where c.UserID == model.UserID
                                  select c);

            int amountInCart = 0;

            for (int i = 0; i < allConnections.Count(); i++)
            {
                amountInCart += allConnections.ToList().ElementAt(i).Amount;
            }

            if (amountInCart >= 64)
            {
                //Cant add if cart is more than 64
                return;
            }

            var connection = allConnections.Where(c => c.BookID == model.BookID).FirstOrDefault();

            //If connection is established, increase the amount.
            if (connection != null)
            {
                connection.Amount++;
                _db.Update(connection);
                _db.SaveChanges();
            }
            //If connection is not established, it will be formed.
            else
            {
                var newCartItem = new UserBookCartConnectionEntityModel()
                {
                    UserID = model.UserID,
                    BookID = model.BookID,
                    Amount = 1,
                };
                _db.Add(newCartItem);
                _db.SaveChanges();
            }
        }
        public async Task <IActionResult> MoveWishlistToCart(int bookID)
        {
            //Gets current User.
            var user = await _userManager.GetUserAsync(User);

            var userID = user.Id;

            //Removes Item from Wishlist...
            _wishlistService.RemoveItem(userID, bookID);
            //and creates a cart model for that book.
            var cartItem = new CartInputModel()
            {
                BookID = bookID,
                UserID = userID,
            };

            //Adds the new cart item to the cart.
            _cartService.AddCartItem(cartItem);

            //Redirects user to wishlist.
            return(RedirectToAction("Wishlist", "Account"));
        }
Esempio n. 8
0
        //Updates Amount of Book in cart.
        public void UpdateConnection(CartInputModel model)
        {
            var allConnections = (from c in _db.UserBookCartConnections
                                  where c.UserID == model.UserID
                                  select c);

            int amountInCart = 0;

            for (int i = 0; i < allConnections.Count(); i++)
            {
                int bookAmount = allConnections.ToList().ElementAt(i).Amount;
                if (allConnections.ToList().ElementAt(i).BookID == model.BookID)
                {
                    bookAmount = model.Amount;
                }
                amountInCart += bookAmount;
            }

            if (amountInCart > 64)
            {
                //Cart amount cannot exceed 64;
                return;
            }

            var connection = allConnections.Where(c => c.BookID == model.BookID).FirstOrDefault();

            if (model.Amount > 0)
            {
                connection.Amount = model.Amount;
                _db.UserBookCartConnections.Update(connection);
                _db.SaveChanges();
            }
            else
            {
                //NOT ALLOWED TO PUT BOOKS BELOW ZERO
            }
        }
Esempio n. 9
0
 public void UpdateConnection(CartInputModel model)
 {
     _cartRepo.UpdateConnection(model);
 }
Esempio n. 10
0
 public void AddCartItem(CartInputModel model)
 {
     _cartRepo.AddCartItem(model);
 }