Exemple #1
0
        [WebMethod(EnableSession = true)]                    //啟用Session
        public static CCartVM GetCurrentCart(CMember member) //取得目前Session中的Cart物件
        {
            //尚未送出的購物車
            var mycart = CCartFactory.fn購物車查詢(member).Where(c => c.fSubmitTime == null).FirstOrDefault();

            //如果為空,新增一個Cart物件
            if (mycart == null)
            {
                CCart cart = new CCart()
                {
                    fMemberId   = member.fMemberId,
                    fSubmitTime = null
                };
                mycart = CCartFactory.fn購物車新增(member, cart);
            }
            ;

            //購物車內的商品(by cartid)
            var cartitem = CCartProductFactory.fn購物車商品查詢().Where(c => c.fCartId == mycart.fCartId).ToList();
            //所有商品封面
            var lsproduct = CProductPictureFactory.fn商品圖片查詢().Where(p => p.fTheRemovedDate == null).DistinctBy(p => p.fProductId).ToList();
            //CCartVM內的變數給值
            CCartVM Cart = new CCartVM()
            {
                mycart         = mycart,
                lscartprooduct = cartitem,
                productpic     = lsproduct
            };

            HttpContext.Current.Session["Cart"] = Cart;

            //回傳Session["Cart"]
            return((CCartVM)HttpContext.Current.Session["Cart"]);
        }
        //GET:下次再買
        public ActionResult PurchaseNextTime(int CartProductId)
        {
            CMember      member      = (CMember)Session[CMemberSession.Session_Login_User];
            CCartVM      currentCart = CCartVM.GetCurrentCart(member);
            CCartProduct CartProduct = currentCart.lscartprooduct.FirstOrDefault(p => p.fCartProductId == CartProductId);

            //新增購物車
            CCart cart = new CCart()
            {
                fMemberId   = member.fMemberId,
                fSubmitTime = null
            };
            CCart mycart = CCartFactory.fn購物車新增(member, cart);

            //新增下次再買的商品到新的購物車
            CProduct product = CProductFactory.fn商品查詢().FirstOrDefault(p => p.fProductId == CartProduct.fProductId);

            CCartProductFactory.fn購物車商品新增(product, mycart);

            //刪除現在購物車裡的商品
            CCartProductFactory.fn購物車商品刪除(CartProduct);

            return(RedirectToAction("CartView"));
        }
        public void ToOrder(int totalprice, int remain, int cartId)
        {
            CMember member = (CMember)Session[CMemberSession.Session_Login_User];//會員
            COrder  o      = new COrder();

            o.fPurchaseDate = DateTime.UtcNow.AddHours(08);
            o.fTotalPrice   = totalprice;
            o.fMemberId     = member.fMemberId;
            COrderFactory.fn訂單新增(o);

            CMemberFactory.fn會員更新點數(member, remain);

            CNotice c = new CNotice();

            c.fCategoryType   = "系統";
            c.fLink           = "超連結";
            c.fNoticeDatetime = DateTime.UtcNow.AddHours(08);
            c.fMemberId       = member.fMemberId;
            c.fNoticeContent  = "您的訂單已完成了";
            CNoticeFactory.fn通知訂單訊息新增(c);

            List <CCartProduct> CP = CCartProductFactory.fn購物車商品個人查詢(cartId).ToList();

            var f = CNoteFolderFactory.fn筆記資料夾查詢(member).Where(q => q.fFolderName == "未分類筆記").ToList();

            int orderid = COrderFactory.fn訂單查詢(member).LastOrDefault().fOrderId;

            foreach (var a in CP)
            {
                CDetailOrderFactory.fn訂單明細新增(orderid, a.fProductId);
                CNotice c1 = new CNotice();
                c1.fCategoryType   = "銷售";
                c1.fLink           = "超連結";
                c1.fNoticeDatetime = DateTime.UtcNow.AddHours(08);
                c1.fMemberId       = a.fMemberSellerId;
                c1.fNoticeContent  = "您的" + a.fName + "已被購買";
                CNoticeFactory.fn通知訂單訊息新增(c1);

                CIncome i1 = new CIncome();
                i1.fIncome          = a.fPrice;
                i1.fPaymentDateTime = DateTime.UtcNow.AddHours(08);
                i1.fIncomeCategory  = "獲利";
                i1.fMemberId        = a.fMemberSellerId;
                CIncomeFactory.fn公司獲利新增(i1);

                var     point  = CMemberFactory.fn會員查詢().Where(z => z.fMemberId == a.fMemberSellerId);
                int     point1 = (point.Single().fMoneyPoint) + a.fPrice;
                CMember cm1    = new CMember();
                cm1.fMemberId = point.Single().fMemberId;
                CMemberFactory.fn會員更新點數(cm1, point1);

                var t = CNoteFactory.fn私人筆記全部查詢().Where(q => q.fFolderId == f.Single().fFolderId).ToList();

                int t1 = t.Count();

                CNote n = new CNote();
                n.fNoteListName     = a.fName;
                n.fCreateDateTime   = DateTime.UtcNow.AddHours(08);
                n.fEditDateTime     = DateTime.UtcNow.AddHours(08);
                n.fNoteListLevel    = t1;
                n.fIsMyFavourite    = false;
                n.fIsTrash          = false;
                n.fFolderId         = f.Single().fFolderId;
                n.fJsonContent      = a.fContent;
                n.fTheShareLink     = null;
                n.fTheContactPerson = null;
                n.fHTMLContent      = "";
                CNoteFactory.fn訂單私人筆記新增(n);
            }

            CCartFactory.fn購物車個人更新(cartId);
        }