//Валидация представления элемента корзины //Число заказанных товаров не должно быть <= 0 и больше фактического public bool BasketItemIsValid(BasketItemView basketItemView) { BookVariableInfo bookVariableInfo; bookVariableInfo = (BookVariableInfo) this._bookVariableInfoRepository.FindById( basketItemView.BookVariableInfoId); if (basketItemView.ItemCount > bookVariableInfo.ProductCount || basketItemView.ItemCount <= 0) return false; return true; }
//Извлечение BasketItem из BasketItemView public BasketItem GetBasketItem(BasketItemView basketItemView) { BasketItem basketItem; BasketRepository basketRepository; BookVariableInfoRepository bookVariableInfoRepository; PaymentRepository paymentRepository; basketItem = new BasketItem() { Id = basketItemView.Id, Amount = basketItemView.Amount, BasketId = basketItemView.BasketId, BookVariableInfoId = basketItemView.BookVariableInfoId, ItemCount = basketItemView.ItemCount, PaymentId = basketItemView.PaymentId }; basketItem.BookVariableInfo = (BookVariableInfo) this._bookVariableInfoRepository.FindById( basketItem.BookVariableInfoId); if (basketItem.BasketId != null) basketItem.Basket = (Basket) this._basketRepository.FindById((Int32)basketItem.BasketId); if (basketItem.PaymentId != null) basketItem.Payment = (Payment) this._paymentRepository.FindById((Int32)basketItem.PaymentId); return basketItem; }
public ActionResult BuyBook(Int32 bookId) { BookVariableInfo bookVariableInfo; BookVariableInfoRepository bookVariableInfoRepository; BasketItemView basketItemView; BasketService basketService; Basket basket; if (User.Identity.IsAuthenticated) { bookVariableInfoRepository = (BookVariableInfoRepository) this._bookVariableInfoRepository; basketService = new BasketService(); bookVariableInfo = bookVariableInfoRepository.FindByBookId(bookId); basket = basketService.GetBasket(User.Identity.Name); basketItemView = new BasketItemView( new BasketItem() { BookVariableInfo = bookVariableInfo, BookVariableInfoId = bookVariableInfo.Id, Basket = basket, BasketId = basket.Id }); } else return Content("Сначала авторизуйтейсь."); return View(basketItemView); }
public ActionResult BuyBook(BasketItemView basketItemView) { bool isOk = true; BasketService basketService; Basket basket; BasketItem basketItem; UserProfile userProfile; Individual individual; if (basketItemView.BookVariableInfo == null) basketItemView.BookVariableInfo = (BookVariableInfo) this._bookVariableInfoRepository .FindById(basketItemView.BookVariableInfoId); if (ModelState.IsValid) { basketService = new BasketService(); if (basketService.BasketItemIsValid(basketItemView)) { basketService = new BasketService(); //Извлечение BasketItem из BasketItemView basketItem = basketService.GetBasketItem( basketItemView); basket = basketService.GetBasket(User.Identity.Name); if (basketService.AddBookItem(basket, basketItem)) return RedirectToAction("Index"); else isOk = false; } else isOk = false; if (!isOk) return Content( "Укажите суммарное число экземпляров > 0 и <= общего числа."); } return View(basketItemView); }
public ActionResult UpdateBasketItem(Int32 basketItemId) { BasketItem basketItem; BasketItemView basketItemView; basketItem = (BasketItem)this._basketItemRepository .FindById(basketItemId); basketItemView = new BasketItemView(basketItem); return View(basketItemView); }