public void EditBookQuantityInBasket(Book currentBook, User currUser, int currQty, int newCount) { Basket currBasket = currUser.Basket; BasketBook bookInBasket = new BasketBook() { Basket = currBasket, Book = currentBook }; int difference = 0; if (newCount > currQty) { difference = newCount - currQty; for (int i = 0; i < difference; i++) { this.Context.BasketsBooks.Add(bookInBasket); this.Context.SaveChanges(); } currentBook.Quantity -= difference; currBasket.TotalPrice += this.CheckCurrentBookPrice(currentBook) * difference; currBasket.Discount = this.CheckDiscount(currBasket.TotalPrice, currUser.MoneySpentBalance); } if (newCount < currQty) { difference = currQty - newCount; //var editedBooks = Enumerable.Repeat(bookInBasket, newCount).ToList(); var currBasketBooks = this.Context.BasketsBooks .Where(b => b.Basket.Id == currBasket.Id && b.Book.Id == currentBook.Id); this.Context.BasketsBooks.RemoveRange(currBasketBooks); for (int i = 0; i < newCount; i++) { this.Context.BasketsBooks.Add(bookInBasket); this.Context.SaveChanges(); } currBasket.TotalPrice -= this.CheckCurrentBookPrice(currentBook) * difference; currBasket.Discount = this.CheckDiscount(currBasket.TotalPrice, currUser.MoneySpentBalance); currentBook.Quantity += difference; } this.Context.SaveChanges(); }
public void AddBookToBasket(User currUser, Book currBook) { Basket currBasket = currUser.Basket; if (currBasket == null) { Basket basket = new Basket() { Owner = currUser, TotalPrice = this.CheckCurrentBookPrice(currBook), Discount = this.CheckDiscount(currBook.Price, currUser.MoneySpentBalance) }; this.Context.BasketsBooks.Add(new BasketBook() { Basket = basket, Book = currBook }); } else { currBasket.TotalPrice += this.CheckCurrentBookPrice(currBook); currBasket.Discount = this.CheckDiscount(currBasket.TotalPrice, currUser.MoneySpentBalance); var newBook = new BasketBook() { Basket = currBasket, Book = currBook }; this.Context.BasketsBooks.Add(newBook); } if (currBook.Quantity > 0) { currBook.Quantity--; } this.Context.SaveChanges(); }
public float PostBasket([FromBody] ShoppingBasketRequest request) { BasketBook basketBook = new BasketBook(request.shoppingBasket, request.discountAvailable, request.unitPrice); return(basketBook.CalculateBasketCost()); }