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); }
public void AddToShoppingCart(IProduct productName, IShoppingCart shoppingCart) { if (productName != null) { shoppingCart.AddProduct(productName); } }
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")); }
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); } }
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); } }
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); }
public List <IShoppingCartItem> AddProductToShoppingCart(IShoppingCartItem item, List <IShoppingCartItem> currentCartItems) { return(_shoppingCart.AddProduct(item, currentCartItems)); }
public virtual void AddProduct(AddToShoppingCartModel model) { shoppingCart.AddProduct(model); }