public Boolean Update(ShoppingCartProduct shoppingCartProduct)
 {
     using (SqlConnection con = new SqlConnection(_connectionString))
     {
         con.Open();
         SqlCommand cmd = new SqlCommand("usp_ECom_UpdateShoppingCartProduct", con);
         cmd.CommandType = System.Data.CommandType.StoredProcedure;
         cmd.Parameters.AddWithValue("Id", shoppingCartProduct.Id);
         cmd.Parameters.AddWithValue("ShoppingCartId", shoppingCartProduct.ShoppingCartId);
         cmd.Parameters.AddWithValue("ProductId", shoppingCartProduct.ProductId);
         cmd.Parameters.AddWithValue("Quantity", shoppingCartProduct.Quantity);
         cmd.Parameters.AddWithValue("UnitPrice", shoppingCartProduct.UnitPrice);
         cmd.Parameters.AddWithValue("UnitOfMeasure", shoppingCartProduct.UnitOfMeasure);
         cmd.Parameters.AddWithValue("SubTotal", shoppingCartProduct.SubTotal);
         cmd.Parameters.AddWithValue("ModifiedBy", "Deyi");
         cmd.Parameters.AddWithValue("ModifiedDate", DateTime.Now);
         SqlParameter retval = cmd.Parameters.Add("Return", SqlDbType.Int);
         retval.Direction = System.Data.ParameterDirection.ReturnValue;
         if (cmd.ExecuteNonQuery() == 1)
         {
             return(true);
         }
     }
     return(false);
 }
        public async Task SeedDisabledProduct(ApplicationDbContext context)
        {
            var product1 = new Product()
            {
                Id        = "ProductId1",
                Available = false,
            };

            var shoppingCart1 = new ShoppingCart()
            {
                Id = "1",
            };

            var shoppingCartProduct1 = new ShoppingCartProduct()
            {
                ShoppingCartId = "1",
                Product        = product1,
                Quantity       = 2,
            };

            await context.ShoppingCarts.AddAsync(shoppingCart1);

            await context.ShoppingCartProducts.AddAsync(shoppingCartProduct1);

            await context.SaveChangesAsync();
        }
        public String AddToCart(int id)
        {
            //not supposed to be here, should be after login event
            customer               = customerRepo.GetById(1);
            shoppingCart           = new ShoppingCart(customer.Id);
            shoppingCart.CreatedBy = shoppingCart.LastModifiedBy = "Customer Name";
            // create a ShoppingCartRepository scr object
            //use scr to save shoppingCart
            ShoppingCartRepository scr = new ShoppingCartRepository(ConstantUtil.MyConnectionString);
            int shoppingCartId         = scr.Insert(shoppingCart);

            ProductRepository pr = new ProductRepository(ConstantUtil.MyConnectionString);
            Product           p  = pr.GetById(id);

            ShoppingCartProduct scp = new ShoppingCartProduct(shoppingCartId, id);

            scp.Quantity         = 100;
            scp.UnitOfMeasure    = p.UnitOfMeasure;
            scp.UnitPrice        = p.UnitPrice;
            scp.CreatedBy        = p.CreatedBy;
            scp.LastModifiedBy   = p.LastModifiedBy;
            scp.CreatedDate      = p.CreatedDate;
            scp.LastModifiedDate = p.LastModifiedDate;
            scp.SubTotal         = scp.Quantity * scp.UnitPrice;
            //create a ShoppinngCartProductRepository scpr
            //use scpr to save scp
            ShoppingCartProductRepository scpr = new ShoppingCartProductRepository(ConstantUtil.MyConnectionString);

            scpr.Create(scp);
            return("Add product " + id + " to the cart successfully!");
        }
        public int Create(ShoppingCartProduct shoppingCartProduct)
        {
            using (SqlConnection con = new SqlConnection(_connectionString))
            {
                con.Open();
                SqlCommand cmd = new SqlCommand("usp_ECom_InsertShoppingCartProduct", con);
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.Parameters.AddWithValue("ShoppingCartId", shoppingCartProduct.ShoppingCartId);
                cmd.Parameters.AddWithValue("ProductId", shoppingCartProduct.ProductId);

                cmd.Parameters.AddWithValue("Quantity", shoppingCartProduct.Quantity);
                cmd.Parameters.AddWithValue("UnitPrice", shoppingCartProduct.UnitPrice);
                if (shoppingCartProduct.UnitOfMeasure == null)
                {
                    shoppingCartProduct.UnitOfMeasure = "EA";
                }
                cmd.Parameters.AddWithValue("UnitOfMeasure", shoppingCartProduct.UnitOfMeasure);
                cmd.Parameters.AddWithValue("SubTotal", shoppingCartProduct.SubTotal);
                cmd.Parameters.AddWithValue("CreatedBy", "DDD");
                cmd.Parameters.AddWithValue("CreatedDate", DateTime.Now);
                cmd.Parameters.AddWithValue("LastModifiedBy", "DDD");
                cmd.Parameters.AddWithValue("LastModifiedDate", DateTime.Now);
                SqlParameter retval = cmd.Parameters.Add("Return", SqlDbType.Int);
                retval.Direction = System.Data.ParameterDirection.ReturnValue;
                return(cmd.ExecuteNonQuery());
            }
            return(0);
        }
        public void AddToShoppingCart(ShoppingCart cart, Product product)
        {
            var products =
                this.Data.ShoppingCartProducts.All()
                .Where(sp => sp.ShoppingCartId == cart.Id).Select(sp => sp.Product).ToList();

            ShoppingCartProduct shoppingCartProduct =
                this.Data.ShoppingCartProducts.All()
                .FirstOrDefault(sp => sp.ShoppingCartId == cart.Id && sp.ProductId == product.Id);

            if (products.Any())
            {
                foreach (var cartProduct in products)
                {
                    if (cartProduct.Id == product.Id)
                    {
                        if (shoppingCartProduct != null)
                        {
                            shoppingCartProduct.Units++;
                        }
                        this.Data.SaveChanges();
                        return;
                    }
                }
            }

            var newShoppingCartProduct = new ShoppingCartProduct()
            {
                ShoppingCartId = cart.Id,
                ProductId      = product.Id
            };

            this.Data.ShoppingCartProducts.Add(newShoppingCartProduct);
            this.Data.SaveChanges();
        }
Пример #6
0
        public void AddProductInCart(int productId, string username)
        {
            var product            = this.productsService.GetProductById(productId);
            var user               = this.userService.GetUserByUsername(username);
            var userShoppingCartId = user.ShoppingCartId;

            if (product == null || user == null)
            {
                return;
            }

            var shoppingCartProduct = this.GetShoppingCartProduct(productId, userShoppingCartId);

            if (shoppingCartProduct != null)
            {
                return;
            }

            shoppingCartProduct = new ShoppingCartProduct
            {
                Product        = product,
                ShoppingCartId = userShoppingCartId,
            };

            this.db.ShoppingCartProducts.Add(shoppingCartProduct);
            this.db.SaveChanges();
        }
Пример #7
0
        public async Task <bool> AddProductToShoppingCartAsync(string productId, string username, int quantity)
        {
            var product = this.context
                          .Products
                          .SingleOrDefault(x => x.Id == productId);

            var user = await this.userService.GetUserByUsername(username);

            if (product == null || quantity <= 0 || user == null)
            {
                return(false);
            }

            var shoppingCartProduct = new ShoppingCartProduct()
            {
                Product        = product,
                ShoppingCartId = user.ShoppingCartId,
                Quantity       = quantity
            };

            this.context.ShoppingCartProduct.Add(shoppingCartProduct);
            var result = await this.context.SaveChangesAsync();

            return(result > 0);
        }
Пример #8
0
        public async Task <Result> AddProductAsync(
            ShoppingCartRequestModel model, string userId)
        {
            var productId       = model.ProductId;
            var requestQuantity = model.Quantity;

            var productQuantity = await this.GetProductQuantityById(productId);

            if (productQuantity < requestQuantity)
            {
                return(NotEnoughProductsMessage);
            }

            var shoppingCart = await this
                               .All()
                               .FirstOrDefaultAsync(c => c.UserId == userId);

            shoppingCart ??= new ShoppingCart
            {
                UserId = userId
            };

            var shoppingCartProduct = new ShoppingCartProduct
            {
                ShoppingCart = shoppingCart,
                ProductId    = productId,
                Quantity     = requestQuantity
            };

            await this.Data.AddAsync(shoppingCartProduct);

            await this.Data.SaveChangesAsync();

            return(Result.Success);
        }
Пример #9
0
        public ActionResult AddProduct(int cartId, int productId)
        {
            Session["cartId"] = cartId;
            Product product = getProduct(productId);

            if (db.ShoppingCartProducts.Any(p => p.ProductID == productId && p.ShoppingCartID == cartId))
            {
                ShoppingCartProduct cartProduct = getCartProductById(cartId, productId);
                cartProduct.Quantity = cartProduct.Quantity + 1;
                cartProduct.Price    = cartProduct.Price + getProductPrice(productId);
                db.SaveChanges();
                Session["quantity"] = getQuantity(cartId);
            }
            else
            {
                var cartProduct = new ShoppingCartProduct();


                cartProduct.ShoppingCartID = cartId;
                cartProduct.ProductID      = product.ProductID;
                cartProduct.ProductName    = product.ProductName;
                cartProduct.Price          = product.Price;
                cartProduct.DateCreated    = DateTime.Now;
                cartProduct.Quantity       = cartProduct.Quantity + 1;
                db.ShoppingCartProducts.Add(cartProduct);
                db.SaveChanges();

                Session["quantity"] = getQuantity(cartId);
            }

            return(RedirectToAction("Welcome", "Users"));
        }
Пример #10
0
        public void AddProductInShoppingCart(int productId, string username, int?quntity = null)
        {
            var product = this.productService.GetProductById(productId);
            var user    = this.userService.GetUserByUsername(username);

            if (product == null || user == null)
            {
                return;
            }

            var shoppingCartProduct = GetShoppingCartProduct(productId, user.ShoppingCartId);

            if (shoppingCartProduct != null)
            {
                return;
            }

            shoppingCartProduct = new ShoppingCartProduct
            {
                Product        = product,
                Quantity       = quntity == null ? DEFAULT_PRODUCT_QUANTITY : quntity.Value,
                ShoppingCartId = user.ShoppingCartId
            };

            this.db.ShoppingCartProducts.Add(shoppingCartProduct);
            this.db.SaveChanges();
        }
        public async Task <IActionResult> PutShoppingCartProduct([FromRoute] int id, [FromBody] ShoppingCartProduct shoppingCartProduct)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != shoppingCartProduct.Id)
            {
                return(BadRequest());
            }

            _context.Entry(shoppingCartProduct).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!ShoppingCartProductExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
Пример #12
0
        public void AddShoppingCartProduct_WithExistentShoppingCartProductAndProductQuantityMoreThenOne_ShouldSuccessfullyIncreaseQuantity()
        {
            string errorMessagePrefix = "ShoppingCartsService AddShoppingCartProduct() method does not work properly.";

            var context = UniShopDbContextInMemoryFactory.InitializeContext();

            this.SeedData(context);
            this.shoppingCartsService = new ShoppingCartsService(context, new UniShopUsersService(context),
                                                                 new ProductsService(context, new ChildCategoriesService(context, new ParentCategoriesService(context))));

            UniShopUser user      = context.Users.First();
            int         productId = context.Products.First().Id;

            ShoppingCartProduct testShoppingCartProduct = new ShoppingCartProduct
            {
                ProductId      = productId,
                ShoppingCartId = user.ShoppingCartId,
                Quantity       = 1
            };

            context.Add(testShoppingCartProduct);
            context.SaveChanges();

            ShoppingCartProduct shoppingCartProduct = context.ShoppingCartProducts
                                                      .First(s => s.ShoppingCartId == user.ShoppingCartId && s.ProductId == productId);

            int expectedCount = shoppingCartProduct.Quantity + 1;

            bool actualResult = this.shoppingCartsService.AddShoppingCartProduct(productId, user.UserName);
            int  actualCount  = shoppingCartProduct.Quantity;

            Assert.True(actualResult, errorMessagePrefix);
            Assert.Equal(expectedCount, actualCount);
        }
Пример #13
0
        public async Task AddProductToShoppingCartAsync(int cartId, int productId, int quantity)
        {
            ShoppingCartProduct shoppingCartProduct = new ShoppingCartProduct(cartId, productId, quantity);
            await _context.ShoppingCartProducts.AddAsync(shoppingCartProduct);

            await _context.SaveChangesAsync();
        }
Пример #14
0
        public void ReduceQuantity_WithShoppingCartProductQuantityOne_ShouldReturnFalse()
        {
            string errorMessagePrefix = "ShoppingCartsService ReduceQuantity() method does not work properly.";

            var context = UniShopDbContextInMemoryFactory.InitializeContext();

            this.SeedData(context);
            this.shoppingCartsService = new ShoppingCartsService(context, new UniShopUsersService(context),
                                                                 new ProductsService(context, new ChildCategoriesService(context, new ParentCategoriesService(context))));

            UniShopUser user      = context.Users.First();
            int         productId = context.Products.Where(p => p.Quantity == 0).First().Id;

            ShoppingCartProduct testShoppingCartProduct = new ShoppingCartProduct
            {
                ProductId      = productId,
                ShoppingCartId = user.ShoppingCartId,
                Quantity       = 1
            };

            context.Add(testShoppingCartProduct);
            context.SaveChanges();

            int expectedCount = testShoppingCartProduct.Quantity;

            bool actualResult = this.shoppingCartsService.ReduceQuantity(productId, user.UserName);
            int  actualCount  = testShoppingCartProduct.Quantity;

            Assert.False(actualResult, errorMessagePrefix);
            Assert.Equal(expectedCount, actualCount);
        }
Пример #15
0
        public void RemoveShoppingCartProduct_WithCorrectData_ShouldSuccessfullyRemove()
        {
            string errorMessagePrefix = "ShoppingCartsService RemoveShoppingCartProduct() method does not work properly.";

            var context = UniShopDbContextInMemoryFactory.InitializeContext();

            this.SeedData(context);
            this.shoppingCartsService = new ShoppingCartsService(context, new UniShopUsersService(context),
                                                                 new ProductsService(context, new ChildCategoriesService(context, new ParentCategoriesService(context))));

            UniShopUser user      = context.Users.First();
            int         productId = context.Products.First().Id;

            ShoppingCartProduct testShoppingCartProduct = new ShoppingCartProduct
            {
                ProductId      = productId,
                ShoppingCartId = user.ShoppingCartId,
                Quantity       = 2
            };

            context.Add(testShoppingCartProduct);
            context.SaveChanges();

            int expectedCount = user.ShoppingCart.ShoppingCartProducts.Count() - 1;

            bool actualResult = this.shoppingCartsService.RemoveShoppingCartProduct(productId, user.UserName);
            int  actualCount  = user.ShoppingCart.ShoppingCartProducts.Count();

            Assert.True(actualResult, errorMessagePrefix);
            Assert.Equal(expectedCount, actualCount);
        }
Пример #16
0
        /// <summary>
        /// Add a new shopping cart product
        /// </summary>
        /// <param name="shoppingCartProduct"></param>
        public static void AddShoppingCartProduct(ShoppingCartProduct shoppingCartProduct)
        {
            List <ShoppingCartProduct> NewShoppingCartProductList = ShoppingCartProductList;

            NewShoppingCartProductList.Add(shoppingCartProduct);

            ShoppingCartProductList = NewShoppingCartProductList;
        }
Пример #17
0
        public ActionResult Delete(int id)
        {
            ShoppingCartProduct product = db.shoppingCartProducts.Find(id);

            db.shoppingCartProducts.Remove(product);
            TempData["message"] = "Produsul a fost sters!";
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
Пример #18
0
        private void InitializeFields()
        {
            this.firstShoppingCart = new ShoppingCart
            {
                UserId = "1",
            };

            this.user = new PhotoPavilionUser
            {
                Id             = "1",
                Gender         = Gender.Male,
                UserName       = "******",
                FullName       = "Peter Petrov",
                Email          = "*****@*****.**",
                PasswordHash   = "123456",
                ShoppingCartId = 1,
            };

            this.firstBrand = new Brand
            {
                Name = "Canon",
            };

            this.firstCategory = new Category
            {
                Name        = "Cameras",
                Description = "Sample category description",
            };

            this.firstProduct = new Product
            {
                Id          = 1,
                Name        = "Canon eos 1100D",
                Code        = 10600,
                Description = "Sample description for Canon eos 1100D",
                Price       = 1500,
                ImagePath   = TestProductImageUrl,
                BrandId     = 1,
                CategoryId  = 1,
            };

            this.firstOrderProduct = new OrderProduct
            {
                ProductId = 1,
                Quantity  = 1,
                Status    = OrderStatus.Accepted,
                Date      = DateTime.UtcNow,
                UserId    = "1",
            };

            this.firstShoppingCartProduct = new ShoppingCartProduct
            {
                ShoppingCartId = 1,
                ProductId      = 1,
                Quantity       = 1,
            };
        }
Пример #19
0
        public ActionResult Delete(int productId, int cartId)
        {
            ShoppingCartProduct cartProduct = getCartProductById(cartId, productId);

            db.ShoppingCartProducts.Remove(cartProduct);
            db.SaveChanges();

            return(RedirectToAction("CartView", new { cartId }));
        }
Пример #20
0
        public async Task <int> ChangeShoppingCartProductCountAsync(Product product, ShoppingCart shoppingCart, string operation, ISession session)
        {
            if (shoppingCart != null)
            {
                int returnCode = 1;

                await Task.Run(() =>
                {
                    try
                    {
                        ShoppingCartProduct shoppingCartProduct = _context.ShoppingCartProduct
                                                                  .Where(scp => scp.Product.Name == product.Name && scp.ShoppingCart == shoppingCart)
                                                                  .FirstOrDefault();

                        //Change
                        if (operation == "reduce" && shoppingCartProduct.Quantity > 1)
                        {
                            shoppingCartProduct.Quantity--;
                        }
                        else if (operation == "increase")
                        {
                            shoppingCartProduct.Quantity++;
                        }

                        _context.Update(shoppingCartProduct);
                        _context.Update(shoppingCart);

                        var t2 = Task.Run(
                            async() =>
                        {
                            await _context.SaveChangesAsync();
                        });
                        t2.Wait();
                        returnCode = 0;
                    }
                    catch (Exception)
                    {
                        returnCode = 1;
                    }
                });

                return(returnCode);
            }
            else
            {
                if (operation == "reduce")
                {
                    await session.AddSessionProductAsync(product.Id, -1);
                }
                else if (operation == "increase")
                {
                    await session.AddSessionProductAsync(product.Id, 1);
                }
                return(0);
            }
        }
Пример #21
0
        public async Task AddProductToCartAsync(string productId, string userId)
        {
            var shoppingCart = this.shoppingCartRepository.All().FirstOrDefault(x => x.UserId == userId);

            if (shoppingCart == null)
            {
                shoppingCart = new ShoppingCart()
                {
                    User = this.usersService.GetUserById(userId),
                    ShoppingCartProducts = new List <ShoppingCartProduct>(),
                };

                var shoppingCartProduct = new ShoppingCartProduct()
                {
                    ShoppingCart = shoppingCart,
                    ProductId    = productId,
                };

                shoppingCart.ShoppingCartProducts.Add(shoppingCartProduct);

                await this.shoppingCartRepository.AddAsync(shoppingCart);
            }

            var shoppingCartProducts = this.shoppingCartRepository
                                       .All()
                                       .SelectMany(x => x.ShoppingCartProducts)
                                       .Where(x => x.ShoppingCartId == shoppingCart.Id)
                                       .ToList();

            if (shoppingCartProducts == null)
            {
                shoppingCart.ShoppingCartProducts = new List <ShoppingCartProduct>()
                {
                    new ShoppingCartProduct()
                    {
                        ShoppingCart = shoppingCart,
                        ProductId    = productId,
                    },
                };
            }

            if (!shoppingCartProducts.Any(x => x.ProductId == productId))
            {
                var shoppingCartProduct = new ShoppingCartProduct()
                {
                    ShoppingCart = shoppingCart,
                    ProductId    = productId,
                };

                shoppingCartProducts.Add(shoppingCartProduct);

                shoppingCart.ShoppingCartProducts = shoppingCartProducts;
            }

            await this.shoppingCartRepository.SaveChangesAsync();
        }
Пример #22
0
        public ActionResult UpdateQuantity(int productId, int cartId, int quant)
        {
            ShoppingCartProduct product = getCartProductById(cartId, productId);

            product.Quantity = quant;
            product.Price    = product.Price * product.Quantity;
            db.SaveChanges();

            return(RedirectToAction("CartView", new { cartId }));
        }
Пример #23
0
        private ShoppingCartProduct CreateShoppingCartProductByProduct(Product product, int?quantity, ShoppingCart shoppingCart)
        {
            var shoppingCartProduct = new ShoppingCartProduct
            {
                Product        = product,
                Quantity       = quantity == null ? DefaultProductQuantity : quantity.Value,
                ShoppingCartId = shoppingCart.Id,
                ProductId      = product.Id,
            };

            return(shoppingCartProduct);
        }
Пример #24
0
        public ActionResult AddToCart(int ProductId)
        {
            ShoppingCartProduct prod = new ShoppingCartProduct();

            prod.ProductId = ProductId;
            prod.UserId    = User.Identity.GetUserId();

            db.shoppingCartProducts.Add(prod);
            db.SaveChanges();

            return(Redirect(Request.UrlReferrer.ToString()));
        }
        public async Task <IActionResult> PostShoppingCartProduct([FromBody] ShoppingCartProduct shoppingCartProduct)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            _context.ShoppingCartProduct.Add(shoppingCartProduct);
            _context.SaveChangesAsync();
            return(Ok());
            //return CreatedAtAction("GetShoppingCartProduct", new { id = shoppingCartProduct.Id }, shoppingCartProduct);
        }
Пример #26
0
        private OrderProduct CreateOrderProduct(Order order, ShoppingCartProduct shoppingCartProduct)
        {
            var orderProduct = new OrderProduct
            {
                Order    = order,
                Product  = shoppingCartProduct.Product,
                Quantity = shoppingCartProduct.Quantity,
                Price    = shoppingCartProduct.Product.Price,
            };

            return(orderProduct);
        }
Пример #27
0
        public IHttpActionResult Create([FromBody] ShoppingCartProductDto shoppingCartProductDto)
        {
            var shoppingCartProduct = new ShoppingCartProduct()
            {
                ShoppingCartId = shoppingCartProductDto.ShoppingCartId,
                ProductId      = shoppingCartProductDto.ProductId,
                Quantity       = shoppingCartProductDto.Quantity
            };

            shoppingCartProductRepository.Add(shoppingCartProduct);
            shoppingCartProductRepository.SaveChanges();
            return(Ok(shoppingCartProduct));
        }
Пример #28
0
//
//        public async Task<CreateShoppingCartResponse> CreateCartAsync(CreateShoppingCartRequest request)
//        {
//            var cart = Domain.ShoppingCart.Create(request.CustomerId);
//            await repo.SaveAsync(cart);
//
//            var cartDTO = mapper.Map<ShoppingCartDTO>(cart);
//
//            return new CreateShoppingCartResponse {ShoppingCart = cartDTO};
//        }

        public async Task <AddProductResponse> AddProduct(AddProductRequest request)
        {
            var cart = await repo.GetCartByIdAsync(request.CartId);

            var product = request.Product;

            //double dispatch pattern
            cart.AddProduct(ShoppingCartProduct.Create(product.Id, product.Name, cart, new Money(product.Price.Amount)));

            await repo.SaveAsync(cart);

            return(new AddProductResponse(true, ResponseAction.Updated));
        }
Пример #29
0
        public async Task <bool> AddProductToCart(string productId, string userId, int quantity)
        {
            // Validations for input data
            bool productExists = await this.ProductExists(productId);

            bool userExists = await this.UserExists(userId);

            bool isValidQuantity = quantity < 1 ? false : true;

            if (!productExists || !userExists || !isValidQuantity)
            {
                return(false);
            }

            // Calls a private method to do the job for getting the shopping cart id
            string shoppingCartId = await this.GetOrCreateUserShoppingCartById(userId);

            // Checks if a product is added to the cart and if so, applies just the quantity
            // Otherwise shopping cart product is created with the data
            bool isProductAdded = this.context
                                  .ShoppingCartProducts
                                  .Any(scp => scp.ProductId == productId && scp.ShoppingCartId == shoppingCartId);

            int result = 0;

            if (isProductAdded)
            {
                this.context
                .ShoppingCartProducts
                .SingleOrDefault(scp => scp.ProductId == productId && scp.ShoppingCartId == shoppingCartId)
                .Quantity += quantity;

                result = await this.context.SaveChangesAsync();

                return(result > 0);
            }

            var shoppingCartProduct = new ShoppingCartProduct
            {
                ProductId      = productId,
                ShoppingCartId = shoppingCartId,
                Quantity       = quantity,
            };

            await this.context.ShoppingCartProducts.AddAsync(shoppingCartProduct);

            result = await this.context.SaveChangesAsync();

            return(result > 0);
        }
Пример #30
0
        public static double GetPrice(ShoppingCartProduct shoppingCartProduct, string currency)
        {
            switch (currency)
            {
            case "CAD":
                return(shoppingCartProduct.Product.Price);

            case "USD":
                return(shoppingCartProduct.Product.PriceUSD);

            default:
                return(shoppingCartProduct.Product.Price);
            }
        }