Пример #1
0
        /// <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);
        }
Пример #3
0
        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);
        }
Пример #4
0
        /// <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);
        }
Пример #5
0
 /// <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);
     }
 }
Пример #6
0
        /// <summary>
        /// 清空購物車功能
        /// </summary>
        /// <param name="cartItems"></param>
        /// <returns></returns>
        public CartItemListViewModel ClearCart(CartItemListViewModel cartItems)
        {
            cartItems.CartItems.Clear();

            return(cartItems);
        }