示例#1
0
        private static CartsContext generateCartContext(string databaseName)
        {
            var _cartOptions = new DbContextOptionsBuilder <CartsContext>().UseInMemoryDatabase(databaseName).Options;
            var _cartContext = new CartsContext(_cartOptions);


            CartsModel cartModel = new CartsModel
            {
                id             = 1,
                userId         = 1,
                shippingMethod = "Cash on Delivery",
                subtotal       = (Decimal)12.95,
                shippingFee    = (Decimal)50.00,
                total          = (Decimal)62.95
            };

            _cartContext.Carts.Add(cartModel);

            CartProductsModel cartProduct = new CartProductsModel
            {
                id        = 1,
                productId = 2,
                cartId    = 1,
                quantity  = 1,
            };

            _cartContext.CartProducts.Add(cartProduct);
            _cartContext.SaveChanges();
            return(_cartContext);
        }
示例#2
0
        public async Task <IActionResult> DeleteConfirmed(string id)
        {
            var cartProduct = await _context.CartProduct.FirstOrDefaultAsync(i => i.ProductId == id);

            if (cartProduct != null)
            {
                _context.CartProduct.Remove(cartProduct);
                await _context.SaveChangesAsync();

                var vm_cart = new CartProductsModel();
                vm_cart.Cart = await _context.Cart.FindAsync(cartProduct.CartId);

                vm_cart.Cart.CartProducts = await _context.CartProduct.Where(i => i.CartId == cartProduct.CartId).ToListAsync();

                if (vm_cart.Cart.CartProducts == null)
                {
                    vm_cart.Cart.CartProducts = new List <CartProduct>();
                }
                vm_cart.Products    = vm_cart.Cart.CartProducts;
                vm_cart.AddProduct  = new CartProduct();
                vm_cart.CartId      = cartProduct.CartId;
                vm_cart.ProductName = "";
                vm_cart.Quantity    = 1;
                vm_cart.Comment     = "";
                return(RedirectToAction(nameof(Edit), vm_cart));
            }
            return(NotFound());
        }
        public async Task <IActionResult> Create([Bind("CartId,Name,DateOpened,OwnerGroupId")] Cart cart)
        {
            Group @group = await GetGroup();

            if (@group == null)
            {
                return(NotFound());
            }

            var date = DateTime.Now;

            cart.DateOpened   = date;
            cart.OwnerGroupId = _groupId;
            cart.OwnerGroup   = @group;

            if (ModelState.IsValid)
            {
                _context.Add(cart);
                await _context.SaveChangesAsync();

                var vm_cart = new CartProductsModel();
                vm_cart.CartId      = cart.CartId;
                vm_cart.Cart        = cart;
                vm_cart.Products    = new List <CartProduct>();
                vm_cart.AddProduct  = new CartProduct();
                vm_cart.ProductName = "";
                vm_cart.Quantity    = 1;
                vm_cart.Comment     = "";
                return(RedirectToAction(nameof(Edit), "CartProducts", vm_cart));
            }
            return(View(cart));
        }
        private CartProductsModel addProductToCart(CartsModel cartModel, ProductsModel product, int quantity)
        {
            CartProductsModel cartProductModel = new CartProductsModel {
                cartId    = cartModel.id,
                productId = product.id,
                quantity  = quantity
            };

            _context.CartProducts.Add(cartProductModel);
            _context.SaveChanges();

            return(cartProductModel);
        }
        public AddCartOutputModel add(ProductsModel product, int quantity)
        {
            CartsModel                cartModel         = this.createCart(1);
            CartProductsModel         cartProductsModel = this.addProductToCart(cartModel, product, quantity);
            List <ProductInCartModel> productsInCart    = this.getProductInCart(cartModel.id);

            cartModel = this.calculate(cartModel, productsInCart);
            _context.Carts.Update(cartModel);
            _context.SaveChanges();
            return(new AddCartOutputModel {
                id = cartModel.id
            });
        }
示例#6
0
        public void When_Get_Cart_By_Id_1_And_Should_Be_Get_This_Cart_Detail()
        {
            var _cartOptions = new DbContextOptionsBuilder <CartsContext>().UseInMemoryDatabase("get_carts_carts_detail").Options;
            var _cartContext = new CartsContext(_cartOptions);

            var _productOptions = new DbContextOptionsBuilder <ProductsContext>().UseInMemoryDatabase("get_carts_carts_products_detail").Options;
            var _productContext = new ProductsContext(_productOptions);

            CartsModel cartModel = new CartsModel {
                id          = 1,
                userId      = 1,
                subtotal    = (Decimal)12.95,
                shippingFee = (Decimal)50.00,
                total       = (Decimal)62.95
            };

            _cartContext.Carts.Add(cartModel);

            CartProductsModel cartProduct = new CartProductsModel {
                id        = 1,
                productId = 2,
                cartId    = 1,
                quantity  = 1,
            };

            _cartContext.CartProducts.Add(cartProduct);
            _cartContext.SaveChanges();

            ProductsModel productData = new ProductsModel {
                id                = 2,
                name              = "43 Piece dinner Set",
                price             = (Decimal)12.95,
                availability      = "InStock",
                stockAvailability = 10,
                age               = "3_to_5",
                gender            = "FEMALE",
                brand             = "CoolKidz"
            };

            _productContext.Products.Add(productData);
            _productContext.SaveChanges();

            CartsService cartsService = new CartsService(_cartContext, _productContext);
            var          actualResult = cartsService.getCart(1, 1);

            Assert.Equal(cartModel, actualResult);
        }
示例#7
0
        public async Task <IActionResult> AddProductToCart(string cartId, CartProductsModel cartProduct)
        {
            if (cartId != cartProduct.CartId)
            {
                return(NotFound());
            }
            cartProduct.AddProduct.CartId = cartId;
            cartProduct.AddProduct.Cart   = await _context.Cart.FindAsync(cartId);

            //cartProduct.AddProduct.Product = _context.Product.FirstOrDefaultAsync(i => i.Name == cartProduct.AddProduct.ProductName).Result;
            //cartProduct.AddProduct.ProductId = cartProduct.AddProduct.Product.ProductId;
            cartProduct.Cart = await _context.Cart.Include(i => i.CartProducts).FirstOrDefaultAsync(c => c.CartId == cartId);

            cartProduct.Cart.CartProducts.Add(cartProduct.AddProduct);
            cartProduct.AddProduct.Cart.CartProducts = cartProduct.Cart.CartProducts;
            cartProduct.Products = cartProduct.Cart.CartProducts;


            if (ModelState.IsValid)
            {
                try
                {
                    _context.Add(cartProduct.AddProduct);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!CartProductExists(cartProduct.CartId))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }

                var vm_cart = new CartProductsModel();
                return(RedirectToAction(nameof(Edit), "CartProducts", cartProduct));
            }
            ViewData["CartId"]    = new SelectList(_context.Cart, "CartId", "CartId", cartProduct.CartId);
            ViewData["ProductId"] = new SelectList(_context.Product, "ProductId", "ProductId", cartProduct.AddProduct.ProductId);
            return(View(cartProduct));
        }
示例#8
0
        // GET: CartProducts/Edit/5
        public async Task <IActionResult> Edit(CartProductsModel vm_cart)
        {
            if (vm_cart.CartId == null)
            {
                return(NotFound());
            }

            vm_cart.Cart = await _context.Cart.FindAsync(vm_cart.CartId);

            vm_cart.Cart.CartProducts = await _context.CartProduct.Where(i => i.CartId == vm_cart.CartId).ToListAsync();

            if (vm_cart.Cart.CartProducts == null)
            {
                vm_cart.Cart.CartProducts = new List <CartProduct>();
            }
            vm_cart.Products    = vm_cart.Cart.CartProducts;
            vm_cart.AddProduct  = new CartProduct();
            vm_cart.ProductName = "";
            vm_cart.Quantity    = 1;
            vm_cart.Comment     = "";


            var currentCartProducts = vm_cart.Cart.CartProducts.Select(i => i.ProductName).ToList();



            ViewData["MachineLearning1"] = "";
            ViewData["MachineLearning2"] = "";
            if (MachineLearningSuggestProduct(currentCartProducts) && ViewData["Recommended"].ToString() != string.Empty)
            {
                ViewData["MachineLearning1"] = "Our algorithm found that many carts like yours wanted {0} also.";
                ViewData["MachineLearning2"] = "Would you like to add {0} to your cart?";
            }

            //ViewData["CartId"] = new SelectList(_context.Cart, "CartId", "CartId", cartProduct.CartId);
            //ViewData["ProductId"] = new SelectList(_context.Product, "ProductId", "ProductId", cartProduct.ProductId);
            return(View(vm_cart));
        }
示例#9
0
 protected override void InTransaction()
 {
     if (_cartModel != null)
     {
         _products = new List <CartProductsModel>();
         foreach (var item in _cartModel)
         {
             var el = Context.Products.FirstOrDefault(x => !x.Deleted && x.Id == item.Id);
             if (el != null)
             {
                 var prod = new CartProductsModel()
                 {
                     Product  = el,
                     Quantity = item.Quantity,
                 };
                 _products.Add(prod);
             }
         }
     }
     if (_gameModel != null)
     {
         _games = new List <CartGamesModel>();
         foreach (var item in _gameModel)
         {
             var el = Context.Games.FirstOrDefault(x => !x.Deleted && x.ParrentId == item.Id && x.DayOfWeek == item.Date.DayOfWeek);
             if (el != null)
             {
                 var prod = new CartGamesModel()
                 {
                     Game     = el,
                     Quantity = item.Quantity,
                     Date     = item.Date,
                 };
                 _games.Add(prod);
             }
         }
     }
 }
        public void When_Create_Order_With_Cart_Should_Be_Return_Order()
        {
            var _orderOptions = new DbContextOptionsBuilder <OrdersContext>().UseInMemoryDatabase("create_order_orders_1").Options;
            var _orderContext = new OrdersContext(_orderOptions);

            var _cartOptions = new DbContextOptionsBuilder <CartsContext>().UseInMemoryDatabase("create_order_carts_detail_1").Options;
            var _cartContext = new CartsContext(_cartOptions);

            var _productOptions = new DbContextOptionsBuilder <ProductsContext>().UseInMemoryDatabase("create_order_carts_products_detail_1").Options;
            var _productContext = new ProductsContext(_productOptions);

            ProductsModel productData = new ProductsModel {
                id                = 2,
                name              = "43 Piece dinner Set",
                price             = (Decimal)12.95,
                availability      = "InStock",
                stockAvailability = 10,
                age               = "3_to_5",
                gender            = "FEMALE",
                brand             = "CoolKidz"
            };

            _productContext.Products.Add(productData);
            _productContext.SaveChanges();

            CartsModel cartModel = new CartsModel {
                id          = 1,
                userId      = 1,
                subtotal    = (Decimal)12.95,
                shippingFee = (Decimal)50.00,
                total       = (Decimal)62.95
            };

            _cartContext.Carts.Add(cartModel);

            CartProductsModel cartProduct = new CartProductsModel {
                id        = 1,
                productId = 2,
                cartId    = 1,
                quantity  = 1,
            };

            _cartContext.CartProducts.Add(cartProduct);
            _cartContext.SaveChanges();

            OrdersService ordersService = new OrdersService(_cartContext, _productContext, _orderContext);
            var           actualResult  = ordersService.create(1, 1);

            //  CreateOrderOutputModel actualResult = new CreateOrderOutputModel{
            //     id = 1
            //  };

            Assert.Equal(2, actualResult.id);



            using (var context = new ProductsContext(_productOptions))
            {
                _productContext.Database.EnsureDeleted();
            }
            using (var context = new CartsContext(_cartOptions))
            {
                _cartContext.Database.EnsureDeleted();
            }
            using (var context = new OrdersContext(_orderOptions))
            {
                _orderContext.Database.EnsureDeleted();
            }
        }