Example #1
0
        public ActionResult Cart()
        {
            DisplayOrderDetailsVM cdList = new DisplayOrderDetailsVM();

            cdList.CDVM = new List <CartDetailsViewModel>();
            if (Session["cart"] != null)
            {
                DisplayOrderDetailsVM cartIds = (DisplayOrderDetailsVM)Session["cart"]; //type casting
                using (ShoppingCartEntities db = new ShoppingCartEntities())
                {
                    CartDetailsViewModel cd = new CartDetailsViewModel();

                    foreach (var item in cartIds.CDVM)
                    {
                        cd = db.tblProductDetails.Where(c => c.id == item.ProductId).Select(c => new CartDetailsViewModel
                        {
                            ProductName = c.productName,
                            Description = c.description,
                            Id          = c.id,
                            ImagePath   = c.imagePath,
                            Price       = c.price,
                            ProductId   = c.productId,
                            Quantity    = item.Quantity,
                            TotalPrice  = item.Quantity * c.price
                        }).FirstOrDefault();

                        cdList.CDVM.Add(cd);
                    }
                }
            }
            return(View(cdList.CDVM));
        }
Example #2
0
        public IActionResult CheckOut(OrderViewModel model)
        {
            if (ModelState.IsValid)
            {
                var orderModel = new CreateOrderModel()
                {
                    OrderViewModel = model,
                    OrderItems     = new List <OrderItemDto>()
                };
                foreach (var orderItem in _cartService.TransformCart().Items)
                {
                    orderModel.OrderItems.Add(new OrderItemDto()
                    {
                        Id       = orderItem.Key.Id,
                        Price    = orderItem.Key.Price,
                        Quantity = orderItem.Value
                    });
                }

                var orderResult = _orderService.CreateOrder(orderModel, User.Identity.Name);
                _cartService.RemoveAll();
                return(RedirectToAction("OrderConfirmed", new { id = orderResult.Id }));
            }
            var detailsModel = new CartDetailsViewModel()
            {
                CartViewModel  = _cartService.TransformCart(),
                OrderViewModel = model
            };

            return(View("Details", detailsModel));
        }
Example #3
0
        public CartDetailsViewModel RemoveBookFromCart(string userName, int bookId)
        {
            BooksStoreDBContext  db     = new BooksStoreDBContext();
            CartDetailsViewModel cartVM = new CartDetailsViewModel();

            cartVM.CartItems = new List <CartItemViewModel>();
            CartItem item = db.CartItems.FirstOrDefault(c => c.UserName == userName && c.BookId == bookId);

            if (item != null)
            {
                item.Count--;
                item.Book.Count++;
                cartVM.CartItems.Add(ConvertEntityToVM(item));
                Hubs.HubAccessor.Instance.UpdateBookCounter(bookId, item.Book.Count.Value);
                if (item.Count == 0)
                {
                    db.CartItems.Remove(item);
                }
                db.SaveChanges();
            }
            cartVM.TotalBooksCount = db.CartItems.Count(c => c.UserName == userName);
            cartVM.TotalItemsCount = this.GetItemsCount(userName);
            cartVM.TotalPrice      = CalculateTotalPrice(userName);
            return(cartVM);
        }
Example #4
0
        public ActionResult RemoveBookFromCart(int bookId)
        {
            CartService          service = new CartService();
            CartDetailsViewModel cartVM  = service.RemoveBookFromCart(User.Identity.Name, bookId);

            return(Json(cartVM, JsonRequestBehavior.AllowGet));
        }
        public async Task <IActionResult> DetailsAsync(string id)
        {
            var viewModel = new CartDetailsViewModel(
                await cartReader.GetByIdAsync(id),
                (await cartReader.GetItemsOfAsync(id)).ToList(),
                (await productRepository.FindAllAsync(x => true)).ToList());

            return(View(viewModel));
        }
Example #6
0
        public IActionResult Details()
        {
            var model = new CartDetailsViewModel
            {
                CartViewModel  = _cartService.TransformCart(),
                OrderViewModel = new OrderViewModel()
            };

            return(View(model));
        }
        public async Task <ActionResult> Details(string id)
        {
            var viewModel = new CartDetailsViewModel
            {
                Cart      = await _cartReader.Get(id),
                CartItems = await _cartReader.GetCartItems(id),
                Products  = await _productRepository.Find(x => true)
            };

            return(View(viewModel));
        }
Example #8
0
        public CartDetailsViewModel GetCartItems(string userName)
        {
            BooksStoreDBContext      db        = new BooksStoreDBContext();
            List <CartItemViewModel> itemsList = new List <CartItemViewModel>();
            CartDetailsViewModel     cartVM    = new CartDetailsViewModel();

            foreach (CartItem item in db.CartItems.Where(c => c.UserName == userName))
            {
                itemsList.Add(ConvertEntityToVM(item));
            }
            cartVM.CartItems       = itemsList;
            cartVM.TotalBooksCount = itemsList.Count;
            cartVM.TotalItemsCount = this.GetItemsCount(userName);
            cartVM.TotalPrice      = CalculateTotalPrice(userName);
            return(cartVM);
        }
Example #9
0
        public JsonResult GetCartItems()
        {
            DisplayOrderDetailsVM ids     = new DisplayOrderDetailsVM();
            CartDetailsViewModel  objcdvm = new CartDetailsViewModel();

            if (Session["Cart"] != null)
            {
                ids = (DisplayOrderDetailsVM)Session["Cart"];


                return(Json(new { cartItemsCount = ids.CDVM.Count, cartItems = ids }));
            }
            else
            {
                return(Json(new { cartItemsCount = 0, cartItems = ids }, JsonRequestBehavior.AllowGet));
            }
        }
Example #10
0
        private void CreateOrderFormCart(string userName, Order order, BooksStoreDBContext db)
        {
            CartService          service = new CartService();
            CartDetailsViewModel cartVM  = service.GetCartItems(userName);

            order.Total = cartVM.TotalPrice;
            List <OrderDetail> orderDetails = new List <OrderDetail>();

            foreach (CartItemViewModel item in cartVM.CartItems)
            {
                OrderDetail detail = ConvertCartItemToOrderDetails(item);
                detail.OrderId = order.OrderId;
                db.OrdersDetails.Add(detail);
            }
            db.SaveChanges();
            service.ClearCart(userName, true);
        }
Example #11
0
 public static string ToHtml(this CartDetailsViewModel game)
 {
     return($@"<div class=""list-group"">
                 <div class=""list-group-item"">
                     <div class=""media"">
                         <a class=""btn btn-outline-danger btn-lg align-self-center mr-3"" href=""/shopping/remove?id={game.Id}"">X</a>
                           <img style=""width: 200px; height: 200px;"" class=""card-image-top img-fluid img-thumbnail"" onerror=""this.src='https://i.ytimg.com/vi/{game.VideoId}/maxresdefault.jpg';"" src=""{game.ThumbnailUrl}"">
                             <div class=""media-body align-self-center"">
                                 <a href=""/games/details?id={game.Id}""><h4 style=""margin-left: 20px"" class=""mb-1 list-group-item-heading"">{game.Title}</h4></a>
                                 <p style=""margin-left: 20px"">{TextTransformer.Cut(game.Description)}</p>
                             </div>
                         <div class=""col-md-2 text-center align-self-center mr-auto"">
                             <h2>{game.Price:F2}&euro;</h2>
                         </div>
                     </div>
                 </div>
             </div>");
 }
Example #12
0
        public ActionResult Addtocart(int id)
        {
            ShoppingCartEntities objdb = new ShoppingCartEntities();
            var price = objdb.tblProductDetails.Where(c => c.productId == id).FirstOrDefault().price;
            DisplayOrderDetailsVM cartIds = new DisplayOrderDetailsVM();

            cartIds.CDVM = new List <CartDetailsViewModel>();
            if (Session["cart"] == null)
            {
                CartDetailsViewModel cv = new CartDetailsViewModel()
                {
                    ProductId = id,
                    Quantity  = 1,
                    Price     = price
                };
                cartIds.CDVM.Add(cv);
                Session["cart"] = cartIds;
            }
            else
            {
                cartIds = (DisplayOrderDetailsVM)Session["cart"];
                var prod = cartIds.CDVM.Where(c => c.ProductId == id).FirstOrDefault();
                if (prod != null)
                {
                    prod.Quantity = prod.Quantity + 1;
                }
                else
                {
                    CartDetailsViewModel cv = new CartDetailsViewModel()
                    {
                        ProductId = id,
                        Quantity  = 1,
                        Price     = price
                    };
                    cartIds.CDVM.Add(cv);
                }
                Session["cart"] = cartIds;
            }
            return(Json(new { totalCount = cartIds.CDVM.Count }, JsonRequestBehavior.AllowGet));
        }