public CheckoutOrderInfo() { cart = new Cart(); appliedCoupons = new List <CheckoutCouponInfo>(); BillingAddress = new AddressInfo(); BillingAddress.PropertyChanged += BillingAddress_PropertyChanged; BillingAddress.EnablePropertyChangeEvent = true; ShipToBillingAddress = null; ShippingAddress = new AddressInfo(); //ShippingAddress.PropertyChanged += ShippingAddress_PropertyChanged; //ShippingOption = new ShippingOption(); ShippingRate = new ShippingRate(); CreditCard = new CreditCardInfo(); PaymentProvider = PaymentProviderName.UNKNOWN; PayPalVariables = new Dictionary <string, string>(); SubTotal = 0; DiscountAmount = 0; //ShippingAmount = 0; TaxAmount = 0; Total = 0; OrderNotes = String.Empty; }
public void AddProductToCart(int productId, int productQty, string jsonProductFieldData) { //UpdateCartItemInCart(null, productId, productQty, true, jsonProductFieldData); DataModel.Cart cart = null; using (esTransactionScope transaction = new esTransactionScope()) { cart = GetCartFromDatabase(true); CartItemCollection cartItemCollection = cart.CartItemCollectionByCartId; List <CartItem> cartItems = cartItemCollection.ToList(); int index = cartItems.FindIndex(ci => (ci.ProductId.Value == productId) && (ci.ProductFieldData == jsonProductFieldData)); if (index >= 0) { // product is in the cart if (productQty <= 0) { // remove from cart cartItemCollection[index].MarkAsDeleted(); } else { // add/update quantity cartItemCollection[index].Quantity += productQty; // update ProductFieldData if (!string.IsNullOrEmpty(jsonProductFieldData)) { cartItemCollection[index].ProductFieldData = jsonProductFieldData; } } } else if (productQty > 0) { // add to cart CartItem newItem = cartItemCollection.AddNew(); newItem.ProductId = productId; newItem.Quantity = productQty; newItem.ProductFieldData = jsonProductFieldData; } //---- update some cart fields too... if (storeContext.UserId.HasValue) { cart.UserId = storeContext.UserId.Value; } cart.Save(); transaction.Complete(); } //return cart; }
public void RemoveCartItemFromCart(int cartItemId) { //UpdateCartItemInCart(cartItemId, null, 0, false, string.Empty); DataModel.Cart cart = GetCartFromDatabase(false); CartItemCollection cartItemCollection = cart.CartItemCollectionByCartId; CartItem toDelete = cartItemCollection.FindByPrimaryKey(cartItemId); if (toDelete != null) { toDelete.MarkAsDeleted(); cart.Save(); } }
private DataModel.Cart GetCartFromDatabase(bool createIfNotExists) { DataModel.Cart cart = new DataModel.Cart(); if (!cart.LoadByPrimaryKey(storeContext.CartId) && createIfNotExists) { // no cart in DB yet, create one... cart.Id = storeContext.CartId; cart.StoreId = storeContext.CurrentStore.Id.Value; if (storeContext.UserId.HasValue) { cart.UserId = storeContext.UserId.Value; } cart.Save(); } return(cart); }
public void UpdateCartItemQuantity(int cartItemId, int quantity) { //UpdateCartItemInCart(cartItemId, null, quantity, false, string.Empty); using (esTransactionScope transaction = new esTransactionScope()) { DataModel.Cart cart = GetCartFromDatabase(false); CartItemCollection cartItems = cart.CartItemCollectionByCartId; cartItems.Filter = cartItems.AsQueryable().Where(x => x.Id == cartItemId); //cartItems.Filter = CartItemMetadata.ColumnNames.Id + " = " + cartItemId; if (cartItems.Count > 0) { // item is in the cart if (quantity <= 0) { // remove from cart cartItems[0].MarkAsDeleted(); } else { cartItems[0].Quantity = quantity; } } //cartItems.Filter = ""; cartItems.Filter = null; //---- update some cart fields too... if (storeContext.UserId.HasValue) { cart.UserId = storeContext.UserId.Value; } cart.Save(); transaction.Complete(); } }