/// <summary> /// 查看購物車內是否有重複方案:若有,則方案數量+1;若無,購物車新增一筆方案 /// </summary> /// <param name="cartItems"></param> /// <param name="carcarPlanVM"></param> /// <returns></returns> public CartItemListViewModel CheckId(CartItemListViewModel cartItems, CarCarPlanViewModel carcarPlanVM) { var result = cartItems.CartItems.Where(x => x.PlanId == carcarPlanVM.PlanId).Select(x => x).FirstOrDefault(); ///若沒有找到相同項目,則新增一個項目 if (result == default(CarCarPlanViewModel)) { var cart = new CarCarPlanViewModel { CartId = cartItems.CartItems.Count() + 1, PlanId = carcarPlanVM.PlanId, PlanTitle = carcarPlanVM.PlanTitle, PlanImgUrl = carcarPlanVM.PlanImgUrl, PlanPrice = carcarPlanVM.PlanPrice, Quantity = carcarPlanVM.Quantity, QuantityLimit = carcarPlanVM.QuantityLimit, ProjectId = carcarPlanVM.ProjectId }; cartItems.CartItems.Add(cart); return(cartItems); } //若有找到相同項目,則該項目數量+1 else { result.Quantity += 1; return(cartItems); } }
public int AddtoCart(CarCarPlanViewModel carcarPlanVM) { var cartList = new CartItemListViewModel { CartItems = new List <CarCarPlanViewModel>() }; ///若購物車為空,則初始化購物車,並放入Session["Cart"] if (Session["Cart"] == null) { var cart = _CartService.CreateANewCart(carcarPlanVM); cartList.CartItems.Add(cart); Session["Cart"] = cartList; } ///若購物車不為空,則購物車新增CarCarPlanViewModel else { cartList = (CartItemListViewModel)Session["Cart"]; var cartFiilter = _CartService.CheckId(cartList, carcarPlanVM); Session["Cart"] = cartFiilter; } ///前端畫面顯示購物車內購物項目的數量。若有重複,則不重複計算 return(cartList.CartItems.Count); }
public PayViewModel QueryByPlanId(CartItemListViewModel cart) //撈資料庫資料 用購物車的planId找到資料庫的planId { var session = HttpContext.Current.Session; var memberSession = ((MemberViewModel)session["Member"]); var member = _repository.GetAll <Member>().FirstOrDefault(x => x.MemberId == memberSession.MemberId); var viewmodel = new PayViewModel { MemberName = member.MemberName, MemberAddress = member.MemberAddress, MemberPhone = member.MemberPhone, MemberConEmail = member.MemberRegEmail, MemberId = member.MemberId, CartItems = new List <CarCarPlanViewModel>() //先給他一個空的集合 讓viewmodel知道我需要這筆資料 }; foreach (var item in cart.CartItems) //先撈session { var plan = _repository.GetAll <Plan>().FirstOrDefault(X => X.PlanId == item.PlanId); //資料庫id==sessionId 之後要移出foreach var CartItem = new CarCarPlanViewModel { PlanId = plan.PlanId, Quantity = item.Quantity, PlanPrice = plan.PlanPrice, PlanImgUrl = plan.PlanImgUrl, PlanTitle = plan.PlanTitle, ProjectId = plan.ProjectId, }; viewmodel.CartItems.Add(CartItem); } return(viewmodel); }
/// <summary> /// 此方法為刪除購物車內某一商品:cartItems為目前購物車內容,carcarPlanVM則為欲刪除項目 /// </summary> /// <param name="cartItems"></param> /// <param name="carcarPlanVM"></param> /// <returns></returns> public CartItemListViewModel DeleteId(CartItemListViewModel cartItems, CarCarPlanViewModel carcarPlanVM) { var result = cartItems.CartItems.Where(x => x.PlanId == carcarPlanVM.PlanId).Select(x => x).FirstOrDefault(); if (result == default(CarCarPlanViewModel)) { } else { cartItems.CartItems.Remove(result); } return(cartItems); }
/// <summary> /// cartItems為購物車內容,QuantityArray則為前端傳入的數量陣列及留言內容 /// </summary> /// <param name="cartItems"></param> /// <param name="QuantityArray"></param> /// <returns></returns> public CartItemListViewModel ChangeCartQuantity(CartItemListViewModel cartItems, CheckoutQuantityViewModel QuantityArray) { if (QuantityArray == null) { return(cartItems); } else { for (int i = 0; i < QuantityArray.Quantity.Count; i++) { ///第一項商品的購買數量等於數量陣列的第一項 cartItems.CartItems[i].Quantity = QuantityArray.Quantity[i]; ///如果商品購買數量大於庫存,則購買數量等於庫存 if (cartItems.CartItems[i].Quantity > cartItems.CartItems[i].QuantityLimit) { cartItems.CartItems[i].Quantity = cartItems.CartItems[i].QuantityLimit; } } cartItems.Comment = QuantityArray.Comment; ///初始化記錄數量的陣列 QuantityArray.Quantity.Clear(); return(cartItems); } }
/// <summary> /// 清空購物車功能 /// </summary> /// <param name="cartItems"></param> /// <returns></returns> public CartItemListViewModel ClearCart(CartItemListViewModel cartItems) { cartItems.CartItems.Clear(); return(cartItems); }