Пример #1
0
        public async Task <XCart> GetCartAsync(long cartID)
        {
            var cart = await mDbContext.Carts
                       .AsNoTracking()
                       .Include(c => c.CartItems)
                       .FirstOrDefaultAsync(c => c.ID == cartID);

            var xCartItems = new List <XCartItem>();

            if (cart.CartItems != null && cart.CartItems.Any())
            {
                xCartItems = cart.CartItems.Select(c => new XCartItem
                                                   (
                                                       id: c.ID,
                                                       productID: c.ProductID.Value,
                                                       cartID: c.CartID.Value,
                                                       quantity: c.Quantity.Value
                                                   )).ToList();
            }

            var xCart = new XCart
                        (
                id: cart.ID,
                userID: cart.UserID.Value,
                status: cart.Status.ToEXCartStatus(),
                cartItems: xCartItems
                        );

            return(xCart);
        }
Пример #2
0
        public async Task <XCart> GetCartByUserIDAsync(long userID)
        {
            var cart = await mDbContext.Carts
                       .AsNoTracking()
                       .Include(c => c.CartItems)
                       .FirstOrDefaultAsync(c => c.UserID.Value == userID && c.Status == Models.Entity.ECartStatus.Active);

            if (cart == null)
            {
                cart = new Models.Entity.Cart
                {
                    UserID = userID,
                    Status = Models.Entity.ECartStatus.Active,
                };

                mDbContext.Carts.Add(cart);
                await mDbContext.SaveChangesAsync();
            }

            var xCartItems = new List <XCartItem>();

            if (cart.CartItems != null && cart.CartItems.Any())
            {
                xCartItems = cart.CartItems.Select(c => new XCartItem
                                                   (
                                                       id: c.ID,
                                                       productID: c.ProductID.Value,
                                                       cartID: c.CartID.Value,
                                                       quantity: c.Quantity.Value
                                                   )).ToList();
            }

            var xCart = new XCart
                        (
                id: cart.ID,
                userID: cart.UserID.Value,
                status: cart.Status.ToEXCartStatus(),
                cartItems: xCartItems
                        );

            return(xCart);
        }