public BasketItemView(BasketItem basketItem) { BookRepository bookRepository; BookVariableInfoRepository bookVariableInfoRepository; BasketRepository basketRepository; PaymentRepository paymentRepository; bookRepository = new BookRepository(); bookVariableInfoRepository = new BookVariableInfoRepository(); basketRepository = new BasketRepository(); paymentRepository = new PaymentRepository(); this.Id = basketItem.Id; this.Amount = basketItem.Amount; this.BasketId = basketItem.BasketId; this.BookVariableInfoId = basketItem.BookVariableInfoId; this.ItemCount = basketItem.ItemCount; this.PaymentId = basketItem.PaymentId; this.BookVariableInfo = (BookVariableInfo) bookVariableInfoRepository.FindById(this.BookVariableInfoId); this.Book = (Book)bookRepository.FindById(this.BookVariableInfoId); if (this.BasketId != null) this.Basket = (Basket)basketRepository.FindById((Int32)this.BasketId); if (this.PaymentId != null) this.Payment = (Payment)paymentRepository.FindById((Int32)this.PaymentId); }
protected void Apply( RootModel model, Taxonomy taxonomy, RepositoryManager repositoryManager, String username, String userEmail, SqlConnection connection, SecurityRepository securityRepository, BasketRepository basketRepository, PortfolioRepository portfolioRepository, ref CalculationInfo calculationInfo ) { using (var transaction = connection.BeginTransaction()) { var manager = this.dataManagerFactory.CreateDataManager(connection, transaction); var btChangesetOpt = this.btModelTransformer.TryTransformToChangeset(model, taxonomy); if (btChangesetOpt != null) { // saving unsaved baskets and modified taxonomy this.btChangesetApplier.Apply(btChangesetOpt, connection, transaction, repositoryManager); } var pstoChangesetOpt = this.pstoModelTransformer.TryTransformToChangeset(model, username); var ttbbvChangesetOpt = this.ttbbvModelTransformer.TryTransformToChangeset(model, username); var ttbptChangesetOpt = this.ttbptModelTransformer.TryTransformToChangeset(model, username); if (pstoChangesetOpt == null && ttbbvChangesetOpt == null && ttbptChangesetOpt == null) { return; // no changes to apply, why bother? } calculationInfo = this.calculationRequester.RequestCalculation(manager); if (pstoChangesetOpt != null) { this.pstoChangesetApplier.Apply(calculationInfo.Id, pstoChangesetOpt, manager); } if (ttbbvChangesetOpt != null) { this.ttbbvChangesetApplier.Apply(calculationInfo.Id, ttbbvChangesetOpt, manager); } if (ttbptChangesetOpt != null) { this.ttbptChangesetApplier.Apply(calculationInfo.Id, ttbptChangesetOpt, manager); } SendNotification(model.TargetingType.Name, model.Portfolio.Name, pstoChangesetOpt, ttbbvChangesetOpt, ttbptChangesetOpt, manager, securityRepository, basketRepository, portfolioRepository, userEmail); //#warning HACK!!! prevent test changes to DB //transaction.Rollback(); transaction.Commit(); } }
public Taxonomy Deserialize(BasketRepository basketRepository, TaxonomyInfo taxonomyInfo) { var result = new Taxonomy(taxonomyInfo.Id); var xml = taxonomyInfo.DefinitionXml; using (var reader = XmlReader.Create(new StringReader(xml))) { this.xmlDeserializer.ReadTaxonomy(basketRepository, reader, result); } return(result); }
public TaxonomyRepository ClaimTaxonomyRepository( IOnDemand <IDataManager> ondemandManager, BasketRepository basketRepository, CountryRepository countryRepository ) { return(this.taxonomyRepositoryStorage.Claim(TaxonomyRepositoryStorageKey, delegate { return this.CreateTaxonomyRepository(ondemandManager.Claim(), basketRepository, countryRepository); })); }
public void TestLoadANormalBasket() { var fileReader = new Mock <IBasketFileReader>(); fileReader.Setup(x => x.GetTextReader()).Returns(new BasketTestData().GetValidTestData); var testRepository = new BasketRepository(fileReader.Object); var catalog = testRepository.GetItems().ToList(); Assert.IsTrue(catalog.Count() == 3); }
public void GetBasket_Return_Throws_Exception_When_Empty_TransactioNumber_Is_Specified() { //Arrange Mock <IDataStoreContext> dataContext = new Mock <IDataStoreContext>(); dataContext.Setup(ds => ds.Baskets).Returns(_fakeBaskets); var basketRepo = new BasketRepository(dataContext.Object); //Act var resource = basketRepo.GetBasket(Guid.Empty); }
public Mail_IChangeResolver(ChangesetApplier applier, IDataManager manager, SecurityRepository securityRepository, BasketRepository basketRepository, List <String> mail, String username, DateTime date, String ttName) { this.applier = applier; this.manager = manager; this.mail = mail; this.username = username; this.date = date; this.securityRepository = securityRepository; this.ttName = ttName; this.basketRepository = basketRepository; }
public JsonResult SepetSayfasiUrunSil(int id) { string cevap = ""; int idUrun = id; BasketRepository sepetim = (BasketRepository)HttpContext.Session["sepet"]; sepetim.urunler.Remove(idUrun); HttpContext.Session["sepet"] = sepetim; cevap = "1"; return(Json(new { success = true, responseText = cevap }, JsonRequestBehavior.AllowGet)); }
public void Allow_2_free_milk_when_8_milk_are_added() { var item = new BasketItem(ProductData.Milk, 8); var basketRepository = new BasketRepository(); basketRepository.AddItem(item); var actual = basketRepository.ComputeTotals(); Assert.Equal(6.9M, actual); }
public void Apply_4th_milk_free_offer_when_3_milk_are_added() { var item = new BasketItem(ProductData.Milk, 4); var basketRepository = new BasketRepository(); basketRepository.AddItem(item); var actual = basketRepository.ComputeTotals(); Assert.Equal(3.45M, actual); }
// GET: Basket public ActionResult Index() { var model = BasketRepository.GetBasket(); var amount = model.Sum(b => b.Amount); ViewBag.TotalAmount = amount; //decimal totalamount = 0; //foreach (var bas in model) { // totalamount += bas.Amount; //} return(View(model)); }
public void Restore_quantity_of_milk_after_applying_discount() { var item = new BasketItem(ProductData.Milk, 8); var basketRepository = new BasketRepository(); basketRepository.AddItem(item); var items = basketRepository.GetBasketItems(); var milkItem = items.FirstOrDefault(x => x.Product.Name.Equals("Milk")); Assert.Equal(8, milkItem.Quantity); }
public void Add_one_item_to_basket() { var p1 = new Product("Milk", 2.50); var item = new BasketItem(p1, 3); var basketRepository = new BasketRepository(); basketRepository.AddItem(item); List <BasketItem> actual = basketRepository.GetBasketItems(); Assert.Single(actual); }
private TaxonomyRepository CreateTaxonomyRepository( IDataManager manager, BasketRepository basketRepository, CountryRepository countryRepository ) { var taxonomyInfos = manager.GetAllTaxonomies(); var taxonomies = taxonomyInfos.Select(x => this.deserializer.DeserializeTaxonomy(x, basketRepository, countryRepository)); var result = new TaxonomyRepository(taxonomies); return(result); }
public RepositoryFactory(AllegrettoContext context) { _context = context; Baskets = new BasketRepository(_context); Categories = new CategoryRepository(_context); Customers = new CustomerRepository(_context); Discounts = new DiscountRepository(_context); Orders = new OrderRepository(_context); Products = new ProductRepository(_context); Users = new UserRepository(_context); Countries = new CountryReposytory(_context); }
public UnitOfWork(DataDbContext context) { _context = context; _repositories = new ConcurrentDictionary <Type, object>(); Dish = new DishRepository(context); Organization = new OrganizationRepository(context); Basket = new BasketRepository(context); BasketInventory = new BasketInventoryRepository(context); Ratings = new RatingRepository(context); Comments = new CommentRepository(context); }
public void RemoveProductFromBasket_GivenProductAndBasketExist_ShouldRemoveTheProductToTheBasket() { // Arrange InMemoryProductDbContext ctx = CreateTestDatabase(); BasketRepository basketRepository = new BasketRepository(ctx); // Act // Add new product to database List <Product> productsToAdd = new List <Product>() { new Product() { Title = "Product 1" }, new Product() { Title = "Product 2" }, new Product() { Title = "Product 3" } }; foreach (var product in productsToAdd) { ctx.Products.Add(product); } ctx.SaveChanges(); // Add new basket to database string ownerId = "george"; basketRepository.CreateBasket(ownerId); // Add products to basket Basket basket = basketRepository.GetBasketByOwnerId(ownerId); foreach (var product in productsToAdd) { basketRepository.AddProductToBasket(product.ProductId, basket.OwnerID); } // Delete product from basket basketRepository.RemoveProductFromBasket(productsToAdd[1].ProductId, ownerId); basket = basketRepository.GetBasketByOwnerId(ownerId); // Assert Assert.AreEqual(2, basket.BasketItems.Count); Assert.AreEqual(1, basket.BasketItems[0].ProductId); Assert.AreEqual(3, basket.BasketItems[1].ProductId); }
public void Apply_50_percent_discount_to_1_bread_when_2_butter_and_bread_are_added() { var item = new BasketItem(ProductData.Bread, 1); var item2 = new BasketItem(ProductData.Butter, 2); var basketRepository = new BasketRepository(); basketRepository.AddItem(item); basketRepository.AddItem(item2); var actual = basketRepository.ComputeTotals(); Assert.Equal(2.10M, actual); }
public void Apply_milk_offer_even_when_basket_contains_none_qualifying_items() { var item = new BasketItem(ProductData.Bread, 1); var item2 = new BasketItem(ProductData.Milk, 4); var basketRepository = new BasketRepository(); basketRepository.AddItem(item); basketRepository.AddItem(item2); var actual = basketRepository.ComputeTotals(); Assert.Equal(4.45M, actual); }
public void CreateWithNullRepositoryWillThrow() { // Fixture setup var fixture = new RepositoryFixture(); BasketRepository nullRepository = null; // Exercise system and verify outcome Assert.Throws <ArgumentNullException>(() => fixture.Build <BasketService>() .FromFactory((BasketDiscountPolicy bdp) => new BasketService(nullRepository, bdp)) .CreateAnonymous()); // Teardown }
public void GetBasketByOwnerId_GivenThatTheBasketDoesNotExist_ShouldReturnNull() { // Arrange InMemoryProductDbContext ctx = CreateTestDatabase(); BasketRepository basketRepository = new BasketRepository(ctx); // Act string ownerId = "george"; Basket basket = basketRepository.GetBasketByOwnerId(ownerId); // Assert Assert.AreEqual(null, basket); }
public void DoesBasketExist_GivenThatBasketDoesNotExist_ShouldReturnFalse() { // Arrange InMemoryProductDbContext ctx = CreateTestDatabase(); BasketRepository basketRepository = new BasketRepository(ctx); // Act string ownerId = "george"; bool doesBasketExist = basketRepository.DoesBasketExist(ownerId); // Assert Assert.AreEqual(false, doesBasketExist); }
public Taxonomy DeserializeTaxonomy( TaxonomyInfo taxonomyInfo, BasketRepository basketRepository, CountryRepository countryRepository ) { var taxonomy = new Taxonomy(taxonomyInfo.Id); using (var reader = XmlReader.Create(new StringReader(taxonomyInfo.DefinitionXml))) { this.xmlDeserializer.DeserializeTaxonomy(reader, basketRepository, countryRepository, taxonomy); } return(taxonomy); }
public BasketServiceAdapter(BasketRepository repository, BasketDiscountPolicy discountPolicy) { if (repository == null) { throw new ArgumentNullException("repository"); } if (discountPolicy == null) { throw new ArgumentNullException("discountPolicy"); } this.repository = repository; this.discountPolicy = discountPolicy; }
public ActionResult InsertUpdateBasket(List <ShoppingBasketModel> items) { BasketRepository br = new BasketRepository(); var user = UserManager.FindByEmail(this.User.Identity.Name); if (user != null) { userId = user.Id; } var userBasket = br.LoadByUserId(userId).ToList(); if (userBasket == null) { userBasket = new List <ShoppingBasket>(); } userBasket = userBasket.Where(x => x.ArchiveDateUTC == null).ToList(); foreach (var item in items.Where(x => x.Id > 0)) { //updates ShoppingBasket m = userBasket.Where(y => y.Id == item.Id).FirstOrDefault(); m.Name = item.Name; m.Description = item.Description; m.Currency = item.Currency; m.Price = item.Price; m.Quantity = item.Quantity; m.Url = item.Url; } foreach (var item in items.Where(x => x.Id == 0)) { //inserts var m = new ShoppingBasket(); m.Id = (item.Id > 0 ? item.Id : 0); m.Name = item.Name; m.Description = item.Description; m.Currency = item.Currency; m.Price = item.Price; m.Quantity = item.Quantity; m.Url = item.Url; m.UserId = userId; userBasket.Add(m); } br.InsertUpdateBasket(userBasket); return(Json(true)); }
public void DecrementProductQuantityInBasket_GivenProductExistsInBasket_ShouldDecrementProductQuantity() { // Arrange InMemoryProductDbContext ctx = CreateTestDatabase(); BasketRepository basketRepository = new BasketRepository(ctx); // Act List <Product> productsToAdd = new List <Product>() { new Product() { Title = "Product 1" }, new Product() { Title = "Product 2" } }; foreach (var product in productsToAdd) { ctx.Products.Add(product); } ctx.SaveChanges(); // Add new basket to database string ownerId = "george"; basketRepository.CreateBasket(ownerId); // Add products to basket Basket basket = basketRepository.GetBasketByOwnerId(ownerId); foreach (var product in productsToAdd) { basketRepository.AddProductToBasket(product.ProductId, basket.OwnerID); } int idOfProductToDecrement = 2; basketRepository.DecrementProductQuantityInBasket(idOfProductToDecrement, ownerId); basket = basketRepository.GetBasketByOwnerId(ownerId); // Assert Assert.AreEqual(1, basket.BasketItems[0].ProductId); Assert.AreEqual(1, basket.BasketItems[0].ProductQuantity); Assert.AreEqual(2, basket.BasketItems[1].ProductId); Assert.AreEqual(0, basket.BasketItems[1].ProductQuantity); }
public void Compute_the_total_cost_of_3_different_items_added_to_basket() { var item = new BasketItem(ProductData.Bread, 1); var item2 = new BasketItem(ProductData.Milk, 1); var item3 = new BasketItem(ProductData.Butter, 1); var basketRepository = new BasketRepository(); basketRepository.AddItem(item); basketRepository.AddItem(item2); basketRepository.AddItem(item3); decimal actual = basketRepository.ComputeTotals(); Assert.Equal(2.95M, actual); }
public void GetAllBasket_WithDomain_Filters_Return_AllBasketsWithSpecifiedDomainNumber() { // Arrange Mock <IDataStoreContext> dataContext = new Mock <IDataStoreContext>(); dataContext.Setup(ds => ds.Baskets).Returns(_fakeBaskets); var basketRepo = new BasketRepository(dataContext.Object); //Act var resource = basketRepo.GetAllBasket(10); //Assert Assert.IsNotNull(resource); Assert.AreEqual(2, resource.Count()); }
public void Apply_both_offers_when_basket_contains_qualifying_items() { var item = new BasketItem(ProductData.Butter, 2); var item2 = new BasketItem(ProductData.Bread, 1); var item3 = new BasketItem(ProductData.Milk, 8); var basketRepository = new BasketRepository(); basketRepository.AddItem(item); basketRepository.AddItem(item2); basketRepository.AddItem(item3); var actual = basketRepository.ComputeTotals(); Assert.Equal(9.0M, actual); }
public void Add_two_items_to_basket() { var p1 = new Product("Milk", 2.50); var p2 = new Product("Bread", 2.50); var item = new BasketItem(p1, 3); var item2 = new BasketItem(p2, 3); var basketRepository = new BasketRepository(); basketRepository.AddItem(item); basketRepository.AddItem(item2); var actual = basketRepository.GetBasketItems(); Assert.Equal(2, actual.Count); }
public void Update_quantity_when_the_same_item_is_added_twice_to_basket() { var p1 = new Product("Milk", 2.50); var p2 = new Product("Milk", 2.50); var item = new BasketItem(p1, 3); var item2 = new BasketItem(p2, 3); var basketRepository = new BasketRepository(); basketRepository.AddItem(item); basketRepository.AddItem(item2); var actual = basketRepository.GetBasketItems(); Assert.Single(actual); }
//Добавление экземпляров книги в корзину покупателя //Должна быть транзакция public bool AddBookItem(Basket basket, BasketItem basketItem) { Int32 allBasketItemCount; Book book; BookVariableInfo bookVariableInfo, newBookVariableInfo; BasketRepository basketRepository; if (basket != null && basketItem != null) { if (basket.BasketItems == null) basket.BasketItems = new List<BasketItem>(); bookVariableInfo = (BookVariableInfo) base._bookVariableInfoRepository.FindById( basketItem.BookVariableInfoId); book = (Book)this._bookRepository.FindById(bookVariableInfo.Id); //Валидация. Общее число заказанного товара не должно быть >= имеющегося числа allBasketItemCount = BasketItemCounting(basketItem); if (allBasketItemCount + basketItem.ItemCount > bookVariableInfo.ProductCount) return false; //Добавление заказанной книги basketItem.BasketId = basket.Id; basketItem.Amount = bookVariableInfo.Price * basketItem.ItemCount; base._basketItemRepository.Add(basketItem); //Обновление корзины basket.TotalAmount += basketItem.Amount; basketRepository = new BasketRepository(); basketRepository.Edit(basket); return true; } else { throw new Exception("Корзина или элемент корзины не заданы!"); } return false; }