コード例 #1
0
        public void Run()
        {
            Category electronic = new Category(CategoryType.Electronic);
            Category book       = new Category(CategoryType.Books);

            Product television      = new Product("Television", 1000, electronic);
            Product essentialCSharp = new Product("TestBook", 400, book);

            _shoppingCart.AddProduct(television, 6);
            _shoppingCart.AddProduct(essentialCSharp, 5);


            Coupon coupon = CouponFactory.GenerateCoupon(1000, 20, CouponType.Rate);
            // I have created 2 discounts type for electronic and book categories.
            // the expectation is to find the best discount option in the same category.
            Campaign campaign3 = CampaignFactory.GenerateCampaign(electronic, 5, 50, DiscountType.Rate);
            Campaign campaign  = CampaignFactory.GenerateCampaign(electronic, 2, 20, DiscountType.Rate);

            Campaign campaign2 = CampaignFactory.GenerateCampaign(book, 2, 5, DiscountType.Amount);
            Campaign campaign4 = CampaignFactory.GenerateCampaign(book, 4, 15, DiscountType.Amount);

            Campaign[] campaigns = { campaign2, campaign, campaign3, campaign4 };

            _shoppingCart.ApplyCampaigns(campaigns);
            _shoppingCart.ApplyCoupon(coupon);
            _shoppingCart.Print();

            var deliveryCost            = _costCalculator.CalculateCost(50, 2, _shoppingCart);
            var totalCartAmount         = _shoppingCart.GetTotalAmount();
            var appliedCampaignDiscount = _shoppingCart.GetCampaignDiscount();
            var appliedCouponDiscount   = _shoppingCart.GetCouponDiscount();

            WriteSummaryText(deliveryCost, totalCartAmount, appliedCampaignDiscount, appliedCouponDiscount);
        }
コード例 #2
0
 public void AddToShoppingCart(IProduct productName, IShoppingCart shoppingCart)
 {
     if (productName != null)
     {
         shoppingCart.AddProduct(productName);
     }
 }
コード例 #3
0
        public IActionResult AddProduct(AddToShoppingCartModel model)
        {
            //EF Core inmemory veritabanını entegre etmek için yazıldı
            _context.Database.EnsureCreated();

            var cartType = _context.UserShoppingCarts.AsNoTracking()
                           .Where(x => x.UserShoppingCartsId == model.UserShoppingCartId)
                           .Select(x => x.ProductType)
                           .Single();

            IShoppingCart shoppingCart = cartType.CreateShoppingCart();

            //veritabanı kaydından önce kontroller çalıştırılıyor.
            string error = shoppingCart.CheckAddingRules(model);

            if (!string.IsNullOrEmpty(error))
            {
                return(BadRequest(error));
            }

            //sepete ekleme işlemi gerçekleştiriliyor.
            shoppingCart.AddProduct(model);

            //işlemler sonucunda veritabanındaki değişiklikleri görmek isterseniz
            //aşağıdaki kod bloğunu aktif hale getirip 55. satıra break point yerleştirdikten sonra listeleri inceleyebilirsiniz

            /*
             * var productList = _context.Products.AsNoTracking().ToList();
             * var userList = _context.Users.AsNoTracking().ToList();
             * var userShoppingCartList = _context.UserShoppingCarts.AsNoTracking().ToList();
             * var productsInShoppingCartsList = _context.ProductsInShoppingCarts.AsNoTracking().ToList();
             */

            return(Ok("İşleminiz başarıyla gerçekleşti"));
        }
コード例 #4
0
        public IShoppingCart Parse(string shoppingCartString)
        {
            try
            {
                _productRepository.Initialise();
                var skusToAdd = shoppingCartString.ToCharArray().Where(x => !char.IsWhiteSpace(x));

                foreach (var sku in skusToAdd)
                {
                    var product = _productRepository.GetProductBySku(sku);
                    if (product == null)
                    {
                        throw new ShoppingCartParseException(sku, "Unknown product");
                    }

                    _shoppingCart.AddProduct(product);
                }

                return(_shoppingCart);
            }
            catch (ShoppingCartParseException scpe)
            {
                throw scpe;
            }
            catch (Exception ex)
            {
                throw new ShoppingCartParseException(ex.Message, ex.InnerException);
            }
        }
コード例 #5
0
        private void button1_Click(object sender, EventArgs e)
        {
            //Lägg den markerade produkten i ShoppingCart
            //MessageBox.Show("Test: " + listBox1.SelectedItem.ToString());
            Product p = listBox1.SelectedItem as Product;

            _cart.AddProduct(p);

            listBox2.Items.Clear();
            foreach (var item in _cart.GetProducts())
            {
                listBox2.Items.Add(item);
            }
        }
コード例 #6
0
        public void Run()
        {
            Category electronic = new Category(CategoryType.Electronic);
            Category book       = new Category(CategoryType.Books);

            Product television      = new Product("Television", 1000, electronic);
            Product essentialCSharp = new Product("EssentialCSharp", 400, book);

            _shoppingCart.AddProduct(television, 5);
            _shoppingCart.AddProduct(essentialCSharp, 1);


            Coupon   coupon   = CouponFactory.GenerateCoupon(1000, 20, DiscountType.Rate);
            Campaign campaign = CampaignFactory.GenerateCampaign(electronic, 2, 10, DiscountType.Amount);


            _shoppingCart.ApplyCampaigns(campaign);
            _shoppingCart.Print();

            var deliveryCost    = _costCalculator.CalculateCost(50, 2, _shoppingCart);
            var totalCartAmount = _shoppingCart.GetTotalAmount();

            WriteClosingText(deliveryCost, totalCartAmount);
        }
コード例 #7
0
 public List <IShoppingCartItem> AddProductToShoppingCart(IShoppingCartItem item, List <IShoppingCartItem> currentCartItems)
 {
     return(_shoppingCart.AddProduct(item, currentCartItems));
 }
コード例 #8
0
 public virtual void AddProduct(AddToShoppingCartModel model)
 {
     shoppingCart.AddProduct(model);
 }