コード例 #1
0
        public async Task <Guid> Handle(CreateCartCommand request, CancellationToken cancellationToken)
        {
            var cart = new CartEntity();
            await _cartRepository.Create(cart);

            return(cart.CartId);
        }
コード例 #2
0
 public CartController(UserClient userClient, ProductClient productClient, LogClient logClient)
 {
     _userClient    = userClient;
     _productClient = productClient;
     _cart          = userClient.GetCurrentUser().GetCart();
     _logClient     = logClient;
 }
コード例 #3
0
 public CartDTO(CartEntity cartEntity)
 {
     TotalPrice = cartEntity.TotalPrice;
     TotalItem  = cartEntity.TotalItem;
     User       = cartEntity.User;
     Items      = cartEntity.Items.Select(X => new CartItem2DTO(X));
 }
コード例 #4
0
        public async Task <CartEntity> AddToCart(ProductEntity product)
        {
            // Get the matching cart and album instances
            var cartItem = await Task.Run(() =>
                                          storeDB.Carts.SingleOrDefault(
                                              c => c.CartId == ShoppingCartId &&
                                              c.CartProductId == product.ProductId));

            if (cartItem == null)
            {
                // Create a new cart item if no cart item exists
                cartItem = new CartEntity
                {
                    CartProductId = product.ProductId,
                    CartId        = ShoppingCartId,
                    Number        = 1,
                    DateCreated   = DateTime.Now
                };
                storeDB.Carts.Add(cartItem);
                storeDB.Entry(cartItem).State = EntityState.Added;
            }
            else
            {
                // If the item does exist in the cart,
                // then add one to the quantity
                cartItem.Number++;
            }
            // Save changes
            await storeDB.SaveChangesAsync();

            return(cartItem);
        }
コード例 #5
0
        public async Task <Guid> GetCartIdByUserId(Guid userId)
        {
            try
            {
                var cart = await _context.Carts.Where(cart => cart.UserId == userId).FirstOrDefaultAsync();

                if (cart == null)
                {
                    cart = new CartEntity()
                    {
                        CartId = new Guid(),
                        UserId = userId
                    };
                    await _context.Carts.AddAsync(cart);

                    await _context.SaveChangesAsync();
                }

                return(cart.CartId);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
コード例 #6
0
ファイル: CartREST.cs プロジェクト: ZhoangZ/dotnet-backend
        public ActionResult removeRowCart([FromBody] FormDeleteCart formDeleteCart)
        {
            try
            {
                // Lấy UserEntity đang đăng nhập từ jwt
                UserEntity user = (UserEntity)HttpContext.Items["User"];
                Console.WriteLine("User: "******"User"] = null;
                CartEntity c = cartDAO.getCart(user.Id, formDeleteCart.CartItemId);
                if (c == null)
                {
                    return(BadRequest());
                }
                cartDAO.RemoveCart(c.Items);

                c = cartDAO.getCart(c);
                return(Ok(new CartDTO(c)));
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
            return(BadRequest());
        }
コード例 #7
0
 public PresentationalCart MapToPresentational(CartEntity cart)
 {
     return new PresentationalCart()
     {
         Items = MapToPresentationals(cart.Items)
     };
 }
コード例 #8
0
        private void med_add_to_cart_Click(object sender, EventArgs e)
        {
            //take amount from
            CartEntity p = new CartEntity();

            foreach (var it in medRepos.GetAll())
            {
                if (it.Id == (int)dataGridView1.CurrentCell.Value)//id in row
                {
                    p.Id      = it.Id;
                    p.name    = it.name;
                    it.amount = it.amount - int.Parse(med_amount.Text);//amount in text
                }
            }
            //add amount to cart
            medRepos.Save();
            cartRepos.Save();                                                                                 //
            if (cartRepos.IsProductExist(factory.GetCartFlyweight(p, int.Parse(med_amount.Text))))            ///////////////////////////////////
            {
                factory.GetCartFlyweight(p, int.Parse(med_amount.Text)).amount += int.Parse(med_amount.Text); /////
                cartRepos.Update(factory.GetCartFlyweight(p, int.Parse(med_amount.Text)));
            }
            else if ((factory.GetCartFlyweight(p, int.Parse(med_amount.Text))).amount == 0)
            {
                factory.GetCartFlyweight(p, int.Parse(med_amount.Text)).amount += int.Parse(med_amount.Text);
                cartRepos.Create(factory.GetCartFlyweight(p, int.Parse(med_amount.Text)));
            }
            else
            {
                cartRepos.Create(factory.GetCartFlyweight(p, int.Parse(med_amount.Text)));
            }
        }
コード例 #9
0
        public bool addToCart([FromBody] CartEntity cartEntity)
        {
            // if product is exist in cart Update count
            Cart item = db.Carts.Where(a => a.userID == userID && a.productID == cartEntity.productID).FirstOrDefault();

            if (item != null)
            {
                item.count           = cartEntity.count;
                db.Entry(item).State = System.Data.Entity.EntityState.Modified;
                db.SaveChanges();
                return(true);
            }
            else  // Add new Cart
            {
                db.Carts.Add(new Cart()
                {
                    count     = cartEntity.count,
                    expire    = DateTime.Now.AddDays(2),
                    productID = cartEntity.productID,
                    userID    = userID
                });
                db.SaveChanges();
                return(true);
            }
        }
コード例 #10
0
        // Helper method to simplify shopping cart calls
        public void AddToCart(Product product)
        {
            // Get the matching cart and album instances
            var cartItem = storeDB.Carts.SingleOrDefault(
                c => c.CartId == ShoppingCartId &&
                c.ProductId == product.ProductId);

            if (cartItem == null)
            {
                // Create a new cart item if no cart item exists
                cartItem = new CartEntity
                {
                    ProductId   = product.ProductId,
                    CartId      = ShoppingCartId,
                    Count       = 1,
                    DateCreated = DateTime.Now
                };
                storeDB.Carts.Add(cartItem);
            }
            else
            {
                // If the item does exist in the cart,
                // then add one to the quantity
                cartItem.Count++;
            }
            // Save changes
            storeDB.SaveChanges();
        }
コード例 #11
0
 public async Task UpdateWithAddedItem(CartEntity cart, CartItem item)
 {
     item.CreatedAt = DateTime.Now;
     _context.CartItems.Add(item);
     _context.Carts.Update(cart);
     await _context.SaveChangesAsync();
 }
コード例 #12
0
        public async Task WhenItemWithGivenProductIdIsNotInCartThenAddItemToCart()
        {
            var        cartId       = Guid.NewGuid();
            var        productId    = Guid.NewGuid();
            var        inputCommand = CreateCommand(cartId, productId, 100);
            var        cartReturnedFromRepository = CreateEmptyCart(cartId);
            CartItem   itemOnUpdate = null;
            CartEntity cartOnUpdate = null;

            _cartRepository.Setup(r => r.GetById(cartId))
            .ReturnsAsync(cartReturnedFromRepository);
            _cartRepository.Setup(r => r.UpdateWithAddedItem(It.IsAny <CartEntity>(), It.IsAny <CartItem>()))
            .Callback <CartEntity, CartItem>((c, i) =>
            {
                cartOnUpdate = c;
                itemOnUpdate = i;
            });

            await _addItemToCartCommandHandler.Handle(inputCommand, default);

            itemOnUpdate.ProductId.Should().Be(productId);
            itemOnUpdate.Quantity.Should().Be(100);
            cartOnUpdate.Items.Count.Should().Be(1);
            cartOnUpdate.Items[0].ProductId.Should().Be(productId);
            cartOnUpdate.Items[0].Quantity.Should().Be(100);
        }
コード例 #13
0
        public IActionResult DoLoginVer2([FromBody] LoginForm loginForm)
        {
            if (userDAO.getOneByEmail(loginForm.Email) == null)
            {
                return(BadRequest(new { message = "Email không tồn tại trong hệ thống!" }));
            }
            var response = _userService.loginAuthenticateByEmail(loginForm);

            if (response == null)
            {
                return(BadRequest(new { message = "Mật khẩu không đúng!" }));
            }
            HttpContext.Session.SetInt32("idUserSession", response.user.Id);

            //  return Ok(response);

            //Lấy Cart
            CartEntity c = cartDAO.getCart(response.user.Id);

            // return Ok(c);
            response.cart = new CartDTO(c);
            //check user has been blocked by admin
            if (response.jwt.Equals("inactive"))
            {
                return(BadRequest(new { message = "Tài khoản của bạn hiện đang khóa. Thực hiện đổi mật khẩu mới để mở khóa!" }));
            }
            return(Ok(response));
        }
コード例 #14
0
        private async Task LoadCartWith(Guid cartId)
        {
            _cart = await _cartRepository.GetById(cartId);

            if (_cart == null)
            {
                throw new NotFoundException("Cart with given id does not exist.");
            }
        }
コード例 #15
0
        public void WhenItemsInCartThenReturnSumOfItemPricesForGetPrice()
        {
            var cart = new CartEntity();

            cart.Items.Add(Mock.Of <CartItem>(ci => ci.GetPrice() == 10.0));
            cart.Items.Add(Mock.Of <CartItem>(ci => ci.GetPrice() == 20.0));

            cart.GetPrice().Should().Be(30.0);
        }
コード例 #16
0
ファイル: CartDao.cs プロジェクト: akawa777/DomainShell
        public void Delete(CartEntity cart)
        {
            DagentDatabase db = new DagentDatabase(_connection);

            ICommand<CartEntity> cartCommand = CreateCartCommand(db);

            cartCommand.Delete(cart);

            db.ExequteNonQuery("delete from CartItem where CustomerId = @customerId", new Parameter("customerId", cart.Id.CustomerId));
        }
コード例 #17
0
        public async Task <Guid?> CreateAsync()
        {
            var entity = new CartEntity();

            if (await _cartCollection.CreateAsync(entity.Init()))
            {
                return(entity.Id);
            }

            throw new Exception("Cart unable to be created.");
        }
コード例 #18
0
        private CartEntity CreateCartWithItem(Guid cartId, CartItem item)
        {
            var cart = new CartEntity
            {
                CartId = cartId,
            };

            cart.Items.Add(item);

            return(cart);
        }
コード例 #19
0
ファイル: OrderDAO .cs プロジェクト: ZhoangZ/dotnet-backend
        public void deleteAllItemCart(int UserId)
        {
            var        tmp = dbContext.Carts.Where(s => s.UserId == UserId).Include(x => x.Items);
            CartEntity c   = tmp.FirstOrDefault();

            foreach (var ci in c.Items)
            {
                dbContext.Remove(ci);
            }
            dbContext.SaveChanges();
        }
コード例 #20
0
        //Cap nhat Giỏ hàng
        public ActionResult EditCart(long id, FormCollection f)
        {
            List <CartEntity> lstGiohang = GetCart();

            CartEntity item = lstGiohang.SingleOrDefault(n => n.IdItem == id);

            if (item != null)
            {
                item.Quantity = int.Parse(f["txtSoluong"].ToString());
            }
            return(RedirectToAction("Cart"));
        }
コード例 #21
0
 public void SaveOrder(CartEntity er)
 {
     try
     {
         string query = "Insert into OrderData values ('" + er.Id + "','" + er.Item + "','" + er.Table + "','" + er.Quantity + "','" + er.Price + "');";
         DataAccess.ExecuteQuery(query);
     }
     catch (Exception ex)
     {
         return;
     }
 }
コード例 #22
0
        public async Task <CartEntity> UpdateCart(CartEntity cart)
        {
            var updated = await _context
                          .Redis
                          .StringSetAsync(cart.UserName, JsonConvert.SerializeObject(cart));

            if (!updated)
            {
                return(null);
            }

            return(await GetCart(cart.UserName));
        }
コード例 #23
0
        public Flyweight GetCartFlyweight(CartEntity product, int amount)
        {
            foreach (var it in flyweightsArr)
            {
                if (it.Id == product.Id)
                {
                    return(it);
                }
            }
            Flyweight flyw = new Flyweight(product, amount);

            flyweightsArr.Add(flyw);
            return(flyw);
        }
コード例 #24
0
        public async Task <IActionResult> Handle(Request request, CancellationToken cancellationToken = default)
        {
            if (request is null)
            {
                return(BadRequest());
            }

            DiagnosticsContext.Set("CartId", request.CartId);
            DiagnosticsContext.Set("ProductId", request.ProductId);
            DiagnosticsContext.Set("Increment", request.Increment);

            CartEntity cart = await Context.Carts.AsNoTracking().SingleOrDefaultAsync(c => c.Id == request.CartId, cancellationToken);

            if (cart is null)
            {
                Logger.LogTrace("Cart not found");
                string message = Localizer.GetStringSafe("CartNotFound", request.CartId);
                return(NotFoundProblem(message));
            }

            ItemEntity item = await Context.Items.AsTracking().SingleOrDefaultAsync(c => c.CartId == request.CartId && c.ProductId == request.ProductId, cancellationToken);

            if (item is null)
            {
                item            = Mapper.Map <ItemEntity>(request);
                item.CreatedOn  = Clock.UtcNow;
                item.ModifiedOn = Clock.UtcNow;

                DiagnosticsContext.Set("NewQuantity", item.Quantity);
                DiagnosticsContext.Set("PreviousQuantity", 0);

                Context.Items.Add(item);
            }
            else
            {
                int existingQuantity = item.Quantity;
                item.Quantity  += request.Increment;
                item.ModifiedOn = Clock.UtcNow;

                DiagnosticsContext.Set("NewQuantity", item.Quantity);
                DiagnosticsContext.Set("PreviousQuantity", existingQuantity);
            }

            await Context.SaveChangesAsync(cancellationToken);

            var response = Mapper.Map <Response>(item);

            return(Ok(response));
        }
コード例 #25
0
        public async Task WhenItemWithGivenProductIdNotInCartThenSkip()
        {
            var cartId       = Guid.NewGuid();
            var productId    = Guid.NewGuid();
            var inputCommand = CreateCommand(cartId, productId);
            var cartReturnedFromRepository = new CartEntity();

            cartReturnedFromRepository.Items.Add(CreateItem(Guid.NewGuid()));
            _cartRepository.Setup(r => r.GetById(cartId))
            .ReturnsAsync(cartReturnedFromRepository);

            await _removeItemFromCartCommandHandler.Handle(inputCommand, default);

            _cartRepository.Verify(x => x.DeleteItem(It.IsAny <CartItem>()), Times.Never());
        }
コード例 #26
0
        public async Task <IActionResult> UpdateCart([FromBody] CartEntity cartEntity)
        {
            int UserId = (Request.Headers.ContainsKey("CustomerId") ? int.Parse(HttpContext.Request.Headers["CustomerId"]) : 0);

            cartEntity.TblCustomerId = UserId;
            var result = await Task <int> .Run(() => _placeOrderActions.UpdateCart(cartEntity));

            if (result != 0)
            {
                return(Ok("Item Updated to Cart"));
            }
            else
            {
                return(BadRequest("Item not added to the Cart"));
            }
        }
コード例 #27
0
        public async Task WhenItemWithGivenProductIdNotInCartThenThrowNotFoundException()
        {
            var cartId       = Guid.NewGuid();
            var productId    = Guid.NewGuid();
            var inputCommand = CreateCommand(cartId, productId, 100);
            var cartReturnedFromRepository = new CartEntity();

            cartReturnedFromRepository.Items.Add(CreateItem(Guid.NewGuid(), 125));
            _cartRepository.Setup(r => r.GetById(cartId))
            .ReturnsAsync(cartReturnedFromRepository);

            Func <Task> act = async() =>
                              await _updateItemQuantityCommandHandler.Handle(inputCommand, default);

            await act.Should().ThrowAsync <NotFoundException>();
        }
コード例 #28
0
        async Task ProcessMessagesAsync(Message message, CancellationToken token)
        {
            string     msg        = Encoding.UTF8.GetString(message.Body);
            var        cartentity = JsonConvert.DeserializeObject <CartEntity>(Encoding.UTF8.GetString(message.Body));
            CartEntity cart       = new CartEntity {
                TblRestaurantId = cartentity.TblRestaurantId,
                TblMenuId       = cartentity.TblMenuId,
                Price           = cartentity.Price
            };

            _orderBusiness.UpdatePriceChange(cart);

            await _subscriptionClient.CompleteAsync(message.SystemProperties.LockToken);

            await _subscriptionClient.CloseAsync();
        }
コード例 #29
0
ファイル: MedicineMenu.cs プロジェクト: Globalika/lnu_VS
        public CartEntity TakeAmountFromCurrentProduct(int amount)
        {
            CartEntity p = new CartEntity();

            products = medRepos.GetAll();
            foreach (var it in products)
            {
                if (it.Id == currentId)
                {
                    p.Id      = it.Id;
                    p.name    = it.name;
                    it.amount = it.amount - amount;
                }
            }
            return(p);
        }
コード例 #30
0
        //Xoa Giohang
        public ActionResult DeleteCart(long id)
        {
            List <CartEntity> lstGiohang = GetCart();

            CartEntity sanpham = lstGiohang.SingleOrDefault(n => n.IdItem == id);

            if (sanpham != null)
            {
                lstGiohang.RemoveAll(n => n.IdItem == id);
                return(RedirectToAction("Cart"));
            }
            if (lstGiohang.Count == 0)
            {
                return(RedirectToAction("Index", "AuraStore"));
            }
            return(RedirectToAction("Cart"));
        }
コード例 #31
0
        public CartEntity ConvertToOrderEntity(DataRow row)
        {
            if (row == null)
            {
                return(null);
            }
            var c = new CartEntity();

            c.Id       = row["Id"].ToString();
            c.Item     = row["Item"].ToString();
            c.Quantity = Int32.Parse(row["Quantity"].ToString());
            c.Table    = row["Table_Seat"].ToString();
            c.Price    = float.Parse(row["Price"].ToString());


            return(c);
        }
コード例 #32
0
ファイル: CartDao.cs プロジェクト: akawa777/DomainShell
        public void Update(CartEntity cart)
        {
            DagentDatabase db = new DagentDatabase(_connection);

            ICommand<CartEntity> cartCommand = CreateCartCommand(db);

            cartCommand.Update(cart);

            ICommand<CartItemEntity> cartItemCommand = CreateCartItemCommand(db);

            foreach (CartItemEntity cartItem in cart.CartItemList)
            {
                cartItemCommand.Update(cartItem);
            }
        }