コード例 #1
0
        public void ScenarioA()
        {
            cart.AddCart(1, "A", 50, 1);
            cart.AddCart(2, "B", 30, 1);
            cart.AddCart(3, "C", 20, 1);
            var totalprice = cart.CheckOut();

            Assert.AreEqual(100, totalprice);
        }
コード例 #2
0
        public async Task <IActionResult> Create([Bind("ID,ProductID,CartProductQuantity")] Cart cart)
        {
            if (ModelState.IsValid)
            {
                await _cart.SetCartTotal(cart);


                //BAD LOGIC <if you click on add wishlist then add cart for the same item
                //it will go to wishlist and remove the item>
                //if wishlist has the same item that was added to the cart, remove the item from the wishlist
                if (await _wishlist.HasSameItem(cart.ProductID))
                {
                    await _wishlist.DeleteSameItem(cart.ProductID);

                    await _wishlist.SaveWishlist();

                    //if cart has the same item that was created , increase the quantity of that item.
                    if (await _cart.HasSameItem(cart.ProductID))
                    {
                        await IncreaseProductQuantity(cart, cart.CartProductQuantity);

                        return(RedirectToRoute(new
                        {
                            controller = "Wishlist",
                            action = "index"
                        }));
                    }

                    _cart.AddCart(cart);
                    await _cart.SaveCart();

                    return(RedirectToRoute(new
                    {
                        controller = "Wishlist",
                        action = "index"
                    }));
                }

                //if cart has the same item that was created, increase the quantity of that item.
                if (await _cart.HasSameItem(cart.ProductID))
                {
                    await IncreaseProductQuantity(cart, cart.CartProductQuantity);

                    return(RedirectToAction(nameof(Index)));
                }


                _cart.AddCart(cart);
                await _cart.SaveCart();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(nameof(Index)));
        }
コード例 #3
0
        public async Task <GetCartViewModel> Execute()
        {
            var validations = _modelStateAccessor.ModelState.ValidateModel();

            if (validations.Any())
            {
                return(SetValidationsAndReturn(validations));
            }
            else
            {
                var cart = CreateCart();

                await _cartRepository.UpdateCartStatus(cart.ExternalKey, false);

                cart.Client = await _clientRepository.GetClientFromDocumentId(Model.Client.DocumentId);

                if (cart.Client == null)
                {
                    CreateClient(cart);
                }

                cart.ClientKey = cart.Client.Key;

                await _cartRepository.AddCart(cart);

                return(new GetCartViewModel
                {
                    Key = cart.Key,
                    ExternalKey = cart.ExternalKey,
                    ChargeValue = cart.ChargeValue,
                    ClientDocumentId = cart.Client.DocumentId
                });
            }
        }
コード例 #4
0
 public ViewResult Checkout(Cart cart, ShippingDetails shippingDetails)
 {
     if (cart.LinesCollection.Count() == 0)
     {
         ModelState.AddModelError("", "Sorry, your cart is empty!");
     }
     if (ModelState.IsValid)
     {
         _customerManager = new UserManager <Customer>(new UserStore <Customer>(_context));
         Customer currentCustomer = _customerManager.FindByName(HttpContext.User.Identity.Name);
         //_orderProcessor.ProcessOrder(cart, shippingDetails);
         cart.CustomerId = currentCustomer.Id;
         _cartRepository.AddCart(cart);
         foreach (var line in cart.LinesCollection)
         {
             line.CartId = cart.CartId;
             _cartLineRepository.CreateLine(line);
         }
         cart.LinesCollection.ToList().ForEach(c => _context.Entry(c).State = System.Data.Entity.EntityState.Deleted);
         cart.Clear();
         return(View("Completed"));
     }
     else
     {
         return(View(shippingDetails));
     }
 }
コード例 #5
0
        public async Task <HttpResponseMessage> AddToCart(CartViewModel cart, string token)
        {
            using (HttpClient client = new HttpClient())
            {
                var contentType = new MediaTypeWithQualityHeaderValue("application/json");
                client.DefaultRequestHeaders.Accept.Add(contentType);
                client.DefaultRequestHeaders.Authorization =
                    new AuthenticationHeaderValue("Bearer", token);
                client.BaseAddress = new Uri("https://localhost:44363/");
                //client.BaseAddress = new Uri("http://52.189.64.29/");
                var jsonstring = JsonConvert.SerializeObject(cart);
                var obj        = new StringContent(jsonstring, System.Text.Encoding.UTF8, "application/json");
                var response   = await client.PostAsync("api/ProceedToBuy/AddToCart/", obj);

                if (response.StatusCode == System.Net.HttpStatusCode.OK)
                {
                    CartDto dto = new CartDto()
                    {
                        CustomerId   = cart.Customer_Id,
                        ProductId    = cart.Product_Id,
                        Zipcode      = cart.ZipCode,
                        DeliveryDate = cart.DeliveryDate
                    };
                    await _repo.AddCart(dto);
                }
                return(response);
            }
        }
コード例 #6
0
        public async Task <ActionResult> PostCart([Bind("ID,ProductID,CartProductQuantity")]  Cart cart)
        {
            if (ModelState.IsValid)
            {
                await _cart.SetCartTotal(cart);

                //BAD LOGIC
                //if wishlist has the same item that was added to the cart, remove the item from the wishlist
                if (await _wishlist.HasSameItem(cart.ProductID))
                {
                    await _wishlist.DeleteSameItem(cart.ProductID);

                    await _wishlist.SaveWishlist();
                }

                //if cart has the same item that was created, increase the quantity of that item.
                if (await _cart.HasSameItem(cart.ProductID))
                {
                    await IncreaseProductQuantity(cart, cart.CartProductQuantity);

                    return(Ok(GetCart(cart.ProductID).Result));
                }

                _cart.AddCart(cart);
                await _cart.SaveCart();

                return(Ok(GetCart(cart.ProductID).Result));
            }
            return(BadRequest());
        }
コード例 #7
0
        public IActionResult SelectDiscount(string armChairId, string showId, string discountByShowId)
        {
            if (string.IsNullOrEmpty(armChairId) || string.IsNullOrEmpty(showId) || string.IsNullOrEmpty(discountByShowId))
            {
                return(NotFound());
            }
            var cart = new Cart
            {
                ArmChairId        = armChairId,
                CartId            = Guid.NewGuid().ToString(),
                User              = UserManager.FindByNameAsync(User.Identity.Name).Result,
                DiscountsByShowId = discountByShowId,
                DateTime          = DateTime.Now
            };
            var armChairByRoom = CartRepository.GetArmChairByRoomById(armChairId, showId);

            armChairByRoom.StateArmChair = StateArmChair.sold;
            CartRepository.UpdateArmChairByRoom(armChairByRoom);
            CartRepository.AddCart(cart);
            var discounstByShow   = CartRepository.GetDiscountByShowById(discountByShowId);
            var userBouthArmChair = new UserBoughtArmChair
            {
                ShowId = discounstByShow.ShowId,
                Show   = discounstByShow.Show,
                UserBoughtArmChairId = Guid.NewGuid().ToString(),
                UserId           = UserManager.FindByNameAsync(User.Identity.Name).Result.Id,
                ArmChairByRoomId = CartRepository.GetArmChairByRoomById(armChairId, showId).ArmChairByRoomId
            };

            CartRepository.AddUserBoughtArmChair(userBouthArmChair);
            return(RedirectToAction("SelectArmChair", new Dictionary <string, string> {
                { "id", discounstByShow.ShowId }
            }));
        }
コード例 #8
0
        public ActionResult AddCart(long productId, int quanlity, decimal pricePerProduct)
        {
            var  customer = Session["CUSTOMER"] as Customer;
            Cart cart     = new Cart
            {
                CustomerId = customer.Id
            };

            try
            {
                var      cartId   = _cartRepository.AddCart(cart);
                CartItem cartItem = new CartItem()
                {
                    CartId          = cartId,
                    ItemStatus      = Constants.PENDING,
                    PricePerProduct = pricePerProduct,
                    Quantity        = quanlity,
                    ProductId       = productId
                };
                _cartItemRepository.AddCartItem(cartItem);
                return(RedirectToAction("LoadCartList", "Cart"));
                //ShopCartViewModel shopCartViewModel = GetCartPageViewData(null, null);
                //return View("ShopCart", shopCartViewModel);
            }
            catch (System.Exception)
            {
                throw;
            }
        }
コード例 #9
0
        public async Task <ActionResult <Models.Cart> > Post(CartForCreation cartForCreation)
        {
            var cart = _mapper.Map <Entities.Cart>(cartForCreation);

            _cartRepository.AddCart(cart);
            await _cartRepository.SaveChanges();

            var cartToReturn = _mapper.Map <Models.Cart>(cart);

            return(CreatedAtRoute(
                       "GetCart",
                       new { cartId = cart.CartId },
                       cartToReturn));
        }
コード例 #10
0
        private void btnAddTocart_Click(object sender, EventArgs e)
        {
            try
            {
                _cart.AddCart(cmbProducts.SelectedIndex, cmbProducts.Text, int.Parse(txtPrice.Text), 1);

                decimal total = 0;
                lblCount.Text      = Convert.ToString(_cart.CalculateCart(out total));
                lblTotalPrice.Text = total.ToString();
            }
            catch (Exception er)
            {
                MessageBox.Show(er.Message);
            }
        }
コード例 #11
0
        public CartModule(ILog logger, ICartRepository repository) : base("/Cart")
        {
            Get["/{CartId}/"] = parameters =>
            {
                logger.Info("Getting cart");
                var result = repository.GetCart(parameters.CartId);
                logger.Info("Cart fetched");
                return(result);
            };

            Post["/"] = parameters =>
            {
                logger.Info("Adding cart");
                var request = this.Bind <CartAddRequest>();
                var result  = repository.AddCart(request.CartId, request.ProductId);
                logger.Info(string.Format("Item added {0}", request.ProductId));
                return(result);
            };
        }
コード例 #12
0
        public int AddCart(CartItemsEntity tblcart)
        {
            if (tblcart != null)
            {
                return(_context.AddCart(new DataLayer.Context.TblCart()
                {
                    //Id = tblcart.CartId,
                    TblCustomerID = tblcart.TblCustomerID,
                    TblRestaurantID = tblcart.TblRestaurantID,
                    TblMenuID = tblcart.TblMenuID,
                    Price = tblcart.Price,
                    Quantity = tblcart.Quantity,
                    status = tblcart.Status,
                    offer = tblcart.offer,
                    RecordTimeStampCreated = DateTime.Now,
                    RecordTimeStamp = DateTime.Now
                }));
            }

            return(0);
        }
コード例 #13
0
 public Task <int> AddCart(CartModel cartModel)
 {
     return(cartRepository.AddCart(cartModel));
 }
コード例 #14
0
ファイル: CartManager.cs プロジェクト: Ajay4296/Ajay-kumar
 /// <summary>
 /// Adds the cart.
 /// </summary>
 /// <param name="cartModel">The cart model.</param>
 /// <returns></returns>
 public int AddCart(CartModel cartModel)
 {
     return(cartRepository.AddCart(cartModel));
 }