public ActionResult AddToCart(int productId) { var user = _db.Users.Where(m => m.UserName == User.Identity.Name).Include(m => m.ShoppingCart.ShoppingCartList).FirstOrDefault(); user.ShoppingCart.ShoppingCartList.Add(new ShoppingCartItem { ProductId = productId, Quantity = 1 }); //ShoppingCart userCart = new ShoppingCart(); //if (userCart == null) //{ // userCart.UserId = _db.Users.Where(m => m.UserName == User.Identity.Name).FirstOrDefault().Id; //} //else //{ // userCart = _db.ShoppingCarts.FirstOrDefault(); //} _db.SaveChanges(); CartCacheService.UpdateCartCount(user.Id, 1); return(Redirect("Index")); //return View(); }
// GET: Groceries/Delete/5 public ActionResult DeleteFromCart(int shoppingCartItemid) { //Removing item from shopping cart list(local) (wasn't reflected in the database) //Removing item from database var user = _db.Users.Where(m => m.UserName == User.Identity.Name).Include(m => m.ShoppingCart.ShoppingCartList).FirstOrDefault(); var sCl = user.ShoppingCart.ShoppingCartList; var sC2 = sCl.Where(m => m.ShoppingCartItemId == shoppingCartItemid).FirstOrDefault(); sCl.Remove(sC2); var dBI = _db.ShoppingCartItems.Where(m => m.ShoppingCartItemId == shoppingCartItemid).FirstOrDefault(); _db.ShoppingCartItems.Remove(dBI); _db.SaveChanges(); CartCacheService.UpdateCartCount(user.Id, -1); return(Redirect("Index")); }
public Mocks() { AccountManager = Substitute.For <IAccountManager>(); AccountManager.ResolveCommerceUser() .Returns(new ManagerResponse <GetUserResult, CommerceUser>(new GetUserResult(), new CommerceUser { Email = "testMail" })); AccountManager.GetCurrentCustomerParties( Arg.Any <CommerceStorefront>(), Arg.Any <IVisitorContext>()) .Returns(new ManagerResponse <GetPartiesResult, IEnumerable <CommerceParty> >( new GetPartiesResult(), new List <CommerceParty>())); ContactFactory = Substitute.For <IContactFactory>(); CartManager = Substitute.For <ICartManager>(); CartManager.AddLineItemsToCart( Arg.Any <CommerceStorefront>(), Arg.Any <IVisitorContext>(), Arg.Any <List <AddCartLineInputModel> >()) .Returns(new ManagerResponse <CartResult, bool>(new CartResult(), true)); CartManager.AddPromoCodeToCart( Arg.Any <CommerceStorefront>(), Arg.Any <IVisitorContext>(), Arg.Any <string>()) .Returns( new ManagerResponse <AddPromoCodeResult, CommerceCart>(new AddPromoCodeResult(), Models.CommerceCartStub)); CartManager.RemoveLineItemFromCart( Arg.Any <CommerceStorefront>(), Arg.Any <IVisitorContext>(), Arg.Any <string>()) .Returns( new ManagerResponse <CartResult, CommerceCart>(new CartResult(), Models.CommerceCartStub)); CartManager.GetCurrentCart( Arg.Any <CommerceStorefront>(), Arg.Any <IVisitorContext>(), Arg.Any <bool>()) .Returns(new ManagerResponse <CartResult, CommerceCart>(new CartResult { Cart = Models.CommerceCartStub, }, Models.CommerceCartStub)); CartManager.RemovePromoCodeFromCart( Arg.Any <CommerceStorefront>(), Arg.Any <IVisitorContext>(), Arg.Any <string>()) .Returns(new ManagerResponse <RemovePromoCodeResult, CommerceCart>(new RemovePromoCodeResult(), Models.CommerceCartStub)); CartManager.ChangeLineQuantity( Arg.Any <CommerceStorefront>(), Arg.Any <IVisitorContext>(), Arg.Any <UpdateCartLineInputModel>()) .Returns(new ManagerResponse <CartResult, CommerceCart>(new CartResult(), Models.CommerceCartStub)); CartManager.AddLineItemsToCart( Arg.Any <CommerceStorefront>(), Arg.Any <IVisitorContext>(), Arg.Is <List <AddCartLineInputModel> >(x => x.Single() == null)) .Returns(new ManagerResponse <CartResult, bool>(new CartResult { Success = false }, false)); CartManager.AddPromoCodeToCart( Arg.Any <CommerceStorefront>(), Arg.Any <IVisitorContext>(), Arg.Is <string>(x => x == string.Empty)) .Returns(new ManagerResponse <AddPromoCodeResult, CommerceCart>( new AddPromoCodeResult { Success = false }, Models.CommerceCartStub)); CartManager.RemoveLineItemFromCart( Arg.Any <CommerceStorefront>(), Arg.Any <IVisitorContext>(), Arg.Is <string>(x => x == null)) .Returns(new ManagerResponse <CartResult, CommerceCart>( new CartResult { Success = false }, Models.CommerceCartStub)); CartManager.RemovePromoCodeFromCart( Arg.Any <CommerceStorefront>(), Arg.Any <IVisitorContext>(), Arg.Is <string>(x => x == string.Empty)) .Returns(new ManagerResponse <RemovePromoCodeResult, CommerceCart>( new RemovePromoCodeResult { Success = false }, Models.CommerceCartStub)); CartManager.ChangeLineQuantity( Arg.Any <CommerceStorefront>(), Arg.Any <IVisitorContext>(), Arg.Is <UpdateCartLineInputModel>(x => x == null)) .Returns(new ManagerResponse <CartResult, CommerceCart>( new CartResult { Success = false }, Models.CommerceCartStub)); CartManager.RemovePartiesFromCart( Arg.Any <CommerceStorefront>(), Arg.Any <IVisitorContext>(), Arg.Any <CommerceCart>(), Arg.Any <List <Party> >()) .Returns(new ManagerResponse <CartResult, CommerceCart>(new AddPartiesResult(), new CommerceCart { Parties = new ReadOnlyCollection <Party>(new List <Party>()) })); CartManager.RemoveAllPaymentMethods( Arg.Any <CommerceStorefront>(), Arg.Any <IVisitorContext>(), Arg.Any <CommerceCart>()) .Returns(new ManagerResponse <CartResult, CommerceCart>(new AddPaymentInfoResult(), new CommerceCart { Payment = new ReadOnlyCollection <PaymentInfo>(new List <PaymentInfo>()) })); CartManager.RemoveAllShippingMethods( Arg.Any <CommerceStorefront>(), Arg.Any <IVisitorContext>(), Arg.Any <CommerceCart>()) .Returns(new ManagerResponse <CartResult, CommerceCart>( new AddPartiesResult(), new CommerceCart { Shipping = new ReadOnlyCollection <ShippingInfo>(new List <ShippingInfo>()) })); CartManager.SetPaymentMethods( Arg.Any <CommerceStorefront>(), Arg.Any <IVisitorContext>(), Arg.Is <PaymentInputModel>(x => x != null)) .Returns(new ManagerResponse <CartResult, CommerceCart>( new AddPaymentInfoResult(), Models.CommerceCartStub)); CartManager.SetPaymentMethods( Arg.Any <CommerceStorefront>(), Arg.Any <IVisitorContext>(), Arg.Is <PaymentInputModel>(x => x == null)) .Returns(new ManagerResponse <CartResult, CommerceCart>( new AddPaymentInfoResult { Success = false }, Models.CommerceCartStub)); CartManager.SetShippingMethods( Arg.Any <CommerceStorefront>(), Arg.Any <IVisitorContext>(), Arg.Is <SetShippingMethodsInputModel>(x => x != null)) .Returns(new ManagerResponse <AddShippingInfoResult, CommerceCart>( new AddShippingInfoResult(), Models.CommerceCartStub)); CartManager.SetShippingMethods( Arg.Any <CommerceStorefront>(), Arg.Any <IVisitorContext>(), Arg.Is <SetShippingMethodsInputModel>(x => x == null)) .Returns(new ManagerResponse <AddShippingInfoResult, CommerceCart>( new AddShippingInfoResult { Success = false }, Models.CommerceCartStub)); VisitorContext = Substitute.For <IVisitorContext>(); VisitorContext.GetCustomerId().Returns(Models.TestUserId); CommerceCart nullCart = null; CartCacheService = Substitute.For <ICartCacheService>(); CartCacheService.GetCart(Arg.Any <string>()).Returns(Models.CommerceCartStub); CartCacheService.GetCart(Arg.Is <string>(x => x.Equals(Models.UserWithEmptyCache))).Returns(nullCart); OrderManager = Substitute.For <IOrderManager>(); OrderManager.GetAvailableRegions( Arg.Any <CommerceStorefront>(), Arg.Any <IVisitorContext>(), Arg.Any <string>()) .Returns( new ManagerResponse <GetAvailableRegionsResult, Dictionary <string, string> >( new GetAvailableRegionsResult(), new Dictionary <string, string> { { "test", "test" } })); OrderManager.GetOrderDetails( Arg.Any <CommerceStorefront>(), Arg.Any <IVisitorContext>(), Arg.Any <string>()) .Returns(new ManagerResponse <GetVisitorOrderResult, CommerceOrder>(new GetVisitorOrderResult(), new CommerceOrder())); OrderManager.GetAvailableRegions( Arg.Any <CommerceStorefront>(), Arg.Any <IVisitorContext>(), Arg.Is <string>(x => x == null)) .Returns( new ManagerResponse <GetAvailableRegionsResult, Dictionary <string, string> >( new GetAvailableRegionsResult { Success = false }, new Dictionary <string, string>())); OrderManager.GetAvailableCountries() .Returns(new ManagerResponse <GetAvailableCountriesResult, Dictionary <string, string> >( new GetAvailableCountriesResult(), new Dictionary <string, string>())); OrderManager.SubmitVisitorOrder( Arg.Any <CommerceStorefront>(), Arg.Any <IVisitorContext>(), Arg.Is <SubmitOrderInputModel>(x => x != null)) .Returns(new ManagerResponse <SubmitVisitorOrderResult, CommerceOrder>( new SubmitVisitorOrderResult(), new CommerceOrder())); OrderManager.SubmitVisitorOrder( Arg.Any <CommerceStorefront>(), Arg.Any <IVisitorContext>(), Arg.Is <SubmitOrderInputModel>(x => x == null)) .Returns(new ManagerResponse <SubmitVisitorOrderResult, CommerceOrder>( new SubmitVisitorOrderResult { Success = false }, new CommerceOrder())); ShippingManager = Substitute.For <IShippingManager>(); ShippingManager.GetShippingPreferences( Arg.Any <CommerceCart>()) .Returns(new ManagerResponse <GetShippingOptionsResult, List <ShippingOption> >( new GetShippingOptionsResult { ShippingOptions = new ReadOnlyCollection <ShippingOption>(new List <ShippingOption>()), LineShippingPreferences = new ReadOnlyCollection <LineShippingOption>(new List <LineShippingOption>()) }, new List <ShippingOption>())); ShippingManager.GetShippingMethods( Arg.Any <CommerceStorefront>(), Arg.Any <IVisitorContext>(), Arg.Any <ShippingOption>()) .Returns(new ManagerResponse <GetShippingMethodsResult, IReadOnlyCollection <ShippingMethod> >( new GetShippingMethodsResult(), new HashSet <ShippingMethod>())); ShippingManager.GetShippingMethods( Arg.Any <CommerceStorefront>(), Arg.Any <IVisitorContext>(), Arg.Any <GetShippingMethodsInputModel>()) .Returns(new ManagerResponse <GetShippingMethodsResult, IReadOnlyCollection <ShippingMethod> >( new GetShippingMethodsResult { ShippingMethods = new ReadOnlyCollection <ShippingMethod>(Models.ShippingMethods.ToList()) }, Models.ShippingMethods)); PaymentManager = Substitute.For <IPaymentManager>(); PaymentManager.GetPaymentOptions( Arg.Any <CommerceStorefront>(), Arg.Any <IVisitorContext>()) .Returns(new ManagerResponse <GetPaymentOptionsResult, IEnumerable <PaymentOption> >( new GetPaymentOptionsResult(), new List <PaymentOption>())); PaymentManager.GetPaymentMethods( Arg.Any <CommerceStorefront>(), Arg.Any <IVisitorContext>(), Arg.Any <PaymentOption>()) .Returns( new ManagerResponse <GetPaymentMethodsResult, IEnumerable <PaymentMethod> >( new GetPaymentMethodsResult(), new List <PaymentMethod>())); ProductResolver = Substitute.For <IProductResolver>(); ProductResolver.ResolveCatalogItem( Arg.Any <string>(), Arg.Any <string>(), Arg.Any <bool>()) .Returns(new Item(ID.NewID, new ItemData(ItemDefinition.Empty, Language.Invariant, Version.First, new FieldList()), Database.GetDatabase("master"))); }