public BaseResponse <List <ShoppingCartWrapper> > GetShoppingCart(string account) { try { var result = (from a in context.ShoppingCart join b in context.Merchandise on a.ProdId equals b.MerchandiseId join c in context.MerchandiseSpec on new { pid = a.ProdId, sid = a.SpecId } equals new { pid = c.MerchandiseId, sid = c.SpecId } into SubCart from c in SubCart.DefaultIfEmpty() where a.Account == account select new ShoppingCartViewModel(b.MerchandiseTitle, b.OwnerAccount, b.MerchandiseId, (a.SpecId == 0) ? b.Price : c.Price, a.SpecId, c.Spec1, c.Spec2, a.PurchaseQty)).ToList(); List <string> sellerAccount = new List <string>(); foreach (var item in result) { if (!sellerAccount.Contains(item.OwnerAccount)) { sellerAccount.Add(item.OwnerAccount); } } List <ShoppingCartWrapper> shoppingCartWrapper = new List <ShoppingCartWrapper>(); ShoppingCartWrapper wrapper; foreach (var seller in sellerAccount) { wrapper = new ShoppingCartWrapper() { SellerAccount = seller, ShoppingCartViewModels = new List <ShoppingCartViewModel>(), }; shoppingCartWrapper.Add(wrapper); } ShoppingCartViewModel temp; result.ForEach(resultData => { shoppingCartWrapper.ForEach(cartData => { if (cartData.SellerAccount.Equals(resultData.OwnerAccount, StringComparison.InvariantCulture)) { temp = new ShoppingCartViewModel(resultData.MerchandiseTitle, resultData.OwnerAccount, resultData.MerchandiseId, resultData.Price, resultData.SpecId, resultData.Spec1, resultData.Spec2, resultData.PurchaseQty); cartData.ShoppingCartViewModels.Add(temp); } }); }); return(new BaseResponse <List <ShoppingCartWrapper> >(true, "List of shoppingCart", shoppingCartWrapper)); } catch (Exception) { return(new BaseResponse <List <ShoppingCartWrapper> >(false, "Cannot get list of shoppingCart", null)); } }
//TODO mock the session to get the cart public void FromSession_ShouldGetTheCartFromSession() { //Arrange var sessionItems = new SessionStateItemCollection(); sessionItems.Dirty = false; sessionItems["cart"] = new ShoppingCart(); var fakeHttpContext = FakeFactory.FakeHttpContextWithSession(sessionItems); var shoppingCartWrapper = new ShoppingCartWrapper(fakeHttpContext); //Act var shoppingCart = shoppingCartWrapper.Get(); //Assert shoppingCart.Should().NotBeNull(); }
public ShoppingCartWrapper LoadCart(Guid customerId, string cartName, bool createIfNotExists = false) { ShoppingCartWrapper shoppingCartWrapper = null; ICart cart; if (!createIfNotExists) { cart = _orderRepository.LoadCart <ICart>(customerId, cartName); } else { cart = _orderRepository.LoadOrCreateCart <ICart>(customerId, cartName); } if (cart != null) { shoppingCartWrapper = new ShoppingCartWrapper(cart); } return(shoppingCartWrapper); }
public void Save(ShoppingCartWrapper cart) { _orderRepository.Save(cart.ShoppingCart); }
public ShoppingCartPageViewModel(ShoppingCartPage shoppingCartPage, ShoppingCartWrapper shoppingCartWrapper) { _shoppingCartPage = shoppingCartPage; _shoppingCartWrapper = shoppingCartWrapper; }