public async Task AddItemToCart(AddCartItemInput input)
        {
            var userId = GetUserId();

            //here we have some global settings
            var tenant = await GetCurrentTenantAsync();

            // create the cart if not exits otherwise get the current cart
            var cart = await _cartManager.CreateCart(new Cart(input.TenantId, tenant.Currency, userId));

            // get the product that we'll add to the cart
            var productVariant = await _productManager.GetProductVariantAsync(input.ProductVariantId);

            var discount = _clientManager.GetClientDiscountByItemGroupCode(input.CardCode, productVariant.ItemGroup);

            var cartItem = new CartProductItem(input.TenantId, cart.Id, productVariant.Id, input.Quantity, productVariant.Price, tenant.ISV, discount);
            //finally add the item to the cart
            await _cartManager.CreateCartProductItem(cartItem);
        }
Exemple #2
0
        public CartPageModel GetCart()
        {
            var model = new CartPageModel();

            var productIds = UserInfo.Cart.Select(x => x.ProductId).ToList();
            var products = Db.Set<tblProduct>().Include(x => x.tblFiles).Where(x => productIds.Contains(x.Id)).ToList();

            foreach (var product in products)
            {
                var cartItem = UserInfo.Cart.Single(x => x.ProductId == product.Id);
                var item = new CartProductItem
                {
                    ProductId = cartItem.ProductId,
                    Price = cartItem.Price,
                    Count = cartItem.Count,
                    ProductName = product.Name,
                    Description = CommonUtils.StripHtml(product.Descripton).Trim(),
                    Image = product.tblFiles.Any() ? product.tblFiles.OrderBy(f => f.Position).First().Path : string.Empty
                };
                model.Products.Add(item);
            }
            return model;
        }
Exemple #3
0
        public CartPageModel GetCart()
        {
            var model = new CartPageModel();

            var productIds = UserInfo.Cart.Select(x => x.ProductId).ToList();
            var products   = Db.Set <tblProduct>().Include(x => x.tblFiles).Where(x => productIds.Contains(x.Id)).ToList();

            foreach (var product in products)
            {
                var cartItem = UserInfo.Cart.Single(x => x.ProductId == product.Id);
                var item     = new CartProductItem
                {
                    ProductId   = cartItem.ProductId,
                    Price       = cartItem.Price,
                    Count       = cartItem.Count,
                    ProductName = product.Name,
                    Description = CommonUtils.StripHtml(product.Descripton).Trim(),
                    Image       = product.tblFiles.Any() ? product.tblFiles.OrderBy(f => f.Position).First().Path : string.Empty
                };
                model.Products.Add(item);
            }
            return(model);
        }