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); }
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 }); }
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); }
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)); }
// 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)); }
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(); } }