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)); }
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 }); }
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")); }
//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")); }
//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 } }
public void UpdateConnection(CartInputModel model) { _cartRepo.UpdateConnection(model); }
public void AddCartItem(CartInputModel model) { _cartRepo.AddCartItem(model); }