示例#1
0
        public ActionResult Index(Models.OrderModel.Ship ship)
        {
            if (this.ModelState.IsValid)
            {
                //取得目前購物車
                var currentcart = Models.Operation.GetCurrentCart();
                //取得目前登入使用者Id
                var userId = HttpContext.User.Identity.GetUserId();
                //建立order物件
                var order = new Models.Order()
                {
                    UserId          = userId,
                    RecieverName    = ship.RecieveName,
                    RecieverPhone   = ship.RecievePhone,
                    RecieverAddress = ship.RecieveAddress
                };
                //加其入Orders資料表後,儲存變更
                db.Order.Add(order);
                db.SaveChanges();

                //取得購物車中OderDetail物件
                var orderDetails = currentcart.ToOrderDetaiList(order.Id);

                //將其加入OrderDetails資料表後儲存變更
                db.OrderDetail.AddRange(orderDetails);
                db.SaveChanges();
                currentcart = Models.Operation.GetCurrentCart();
                currentcart.ClearCart();
                return(Content("訂購成功"));
            }
            return(View());
        }
示例#2
0
        public ActionResult Index(Models.OrderModel.Ship postback)
        {
            if (this.ModelState.IsValid)
            {
                var CurrentCart = Models.Operation.GetCurrentCart();
                var userId      = HttpContext.User.Identity.Name;

                using (CartsEntities db = new CartsEntities())
                {
                    //建立Order物件
                    var order = new Order()
                    {
                        UserId          = userId,
                        RecieverName    = postback.RecieverName,
                        RecieverPhone   = postback.RecieverPhone,
                        RecieverAddress = postback.RecieverAddress
                    };

                    //加入Orders資料表後儲存變更
                    db.Order.Add(order);
                    db.SaveChanges();
                    //取得購物車中的OrderDetail物件
                    var OrderDetail = CurrentCart.ToOrderDetailList(order.Id);
                    //加入OrderDetail資料表後儲存變更
                    db.OrderDetail.AddRange(OrderDetail);
                    db.SaveChanges();
                }
                TempData["ResultMessage"] = String.Format("{0}你好,您的訂單已訂購成功", postback.RecieverName);
                return(View("ThanksForBuy"));
            }


            return(View());
        }
示例#3
0
        public ActionResult Index(Models.OrderModel.Ship postback)
        {
            if (this.ModelState.IsValid)
            {   //取得目前購物車
                var currentcart = Models.Cart.Operation.GetCurrentCart();

                //取得目前登入使用者Id
                var userId = HttpContext.User.Identity.GetUserId();

                using (Models.CartsEntities db = new Models.CartsEntities())
                {
                    //建立Order物件
                    var order = new Models.Order()
                    {
                        UserId          = userId,
                        RecieverName    = postback.RecieverName,
                        RecieverPhone   = postback.RecieverPhone,
                        RecieverAddress = postback.RecieverAddress
                    };
                    //加其入Orders資料表後,儲存變更
                    db.Orders.Add(order);
                    db.SaveChanges();

                    //取得購物車中OrderDetai物件
                    var orderDetails = currentcart.ToOrderDetailList(order.Id);

                    //將其加入OrderDetails資料表後,儲存變更
                    db.OrderDetails.AddRange(orderDetails);
                    db.SaveChanges();
                }
                var Url = "~/Home";
                return(Redirect(Url));
            }
            return(View());
        }
示例#4
0
        public ActionResult Index(Models.OrderModel.Ship postback)
        {
            if (this.ModelState.IsValid)
            {
                var currentcart = Models.Carts.Operation.GetCurrentCart();
                var UserId      = 2;
                using (Models.Database._1MVC1Model db = new Models.Database._1MVC1Model())
                {
                    var order = new Models.Database.Order()
                    {
                        CustomerID      = UserId,
                        RecieverName    = postback.RecieverName,
                        RecieverPhone   = postback.RecieverPhone,
                        RecieverAddress = postback.RecieverAddress
                    };
                    db.Orders.Add(order);
                    db.SaveChanges();

                    var orderDetail = currentcart.ToOrderDetailList(order.OrderID);
                    db.OrderDetails.AddRange(orderDetail);
                    db.SaveChanges();
                }
                //return Content("訂購");
            }
            return(View());
        }
示例#5
0
        public ActionResult Index(Models.OrderModel.Ship postback)
        {
            if (this.ModelState.IsValid)
            {
                var currentcart = Models.Cart.Operation.GetCurrentCart();

                var UserId = HttpContext.User.Identity.GetUserId();
                using (Models.mainEntities db = new Models.mainEntities())
                {
                    //Order object
                    var order = new Models.Order()
                    {
                        UserId          = UserId,
                        RecieverName    = postback.ReceiverName,
                        RecieverPhone   = postback.ReceiverPhone,
                        RecieverAddress = postback.ReceiverAddress
                    };
                    //Add data table
                    db.OrderSet.Add(order);
                    db.SaveChanges();

                    //Get OrderDetail Object
                    var orderDetails = currentcart.ToOrderDetailList(order.Id);
                    // insert to order datatable
                    db.OrderDetailSet.AddRange(orderDetails);
                    db.SaveChanges();
                }
                return(Content("訂購成功!"));
            }
            return(View());
        }
示例#6
0
        public ActionResult Index(Models.OrderModel.Ship postback)
        {
            if (this.ModelState.IsValid)
            {
                var currentcart = Models.Cart.Operation.GetCurrentCart();

                var userId = HttpContext.User.Identity.GetUserId();

                using (Models.ShoppingCartEntities db = new Models.ShoppingCartEntities())
                {
                    var order = new Models.Order()
                    {
                        UserId          = userId,
                        RecieverName    = postback.RecieverName,
                        RecieverAddress = postback.RecieverAddress,
                        RecieverPhone   = postback.RecieverPhone
                    };

                    db.Orders.Add(order);
                    db.SaveChanges();

                    var orderDetails = currentcart.ToOrderDetailList(order.Id);

                    db.OrderDetails.AddRange(orderDetails);
                    db.SaveChanges();
                }
                return(Content("訂購成功"));
            }
            return(View());
        }
示例#7
0
        public ActionResult Index(Models.OrderModel.Ship postback)
        {
            if (this.ModelState.IsValid)
            {
                //取得目前購物車
                var currentcart = Models.Cart.Operation.GetCurrentCart();

                //取得目前登入使用者Id
                var userId = HttpContext.User.Identity.GetUserId();

                using (Models.CartsEntities db = new Models.CartsEntities())
                {
                    //建立Order 物件
                    var order = new Models.Order()
                    {
                        UserId          = userId,
                        RecieverName    = postback.RecieverName,
                        RecieverPhone   = postback.RecieverPhone,
                        RecieverAddress = postback.RecieverAddress
                    };
                    //加其入Orders資料表後,儲存變更
                    db.Orders.Add(order);

                    try
                    {
                        db.SaveChanges();
                    }
                    catch (DbEntityValidationException ex)
                    {
                        var entityError      = ex.EntityValidationErrors.SelectMany(x => x.ValidationErrors).Select(x => x.ErrorMessage);
                        var getFullMessage   = string.Join("; ", entityError);
                        var exceptionMessage = string.Concat(ex.Message, "errors are: ", getFullMessage);
                    }


                    //取得購物車中OrderDetail物件
                    var orderDetails = currentcart.ToOrderDetailList(order.Id);

                    //將其加入OrderDetails資料表後,儲存變更
                    db.OrderDetails.AddRange(orderDetails);

                    try
                    {
                        db.SaveChanges();
                    }
                    catch (DbEntityValidationException ex)
                    {
                        var entityError      = ex.EntityValidationErrors.SelectMany(x => x.ValidationErrors).Select(x => x.ErrorMessage);
                        var getFullMessage   = string.Join("; ", entityError);
                        var exceptionMessage = string.Concat(ex.Message, "errors are: ", getFullMessage);
                    }
                }
                return(RedirectToAction("Index"));
            }
            return(View());
        }
示例#8
0
        public ActionResult Index(Models.OrderModel.Ship postback)
        {
            if (this.ModelState.IsValid)
            {
                //取得目前購物車
                var currentcart = Models.Carts.Operation.GetCurrentCart();

                using (Models.SmartShoppingEntities ss = new Models.SmartShoppingEntities())
                {
                    //取得目前登入使用者Id
                    if (User.Identity.IsAuthenticated)
                    {
                        string aspid = User.Identity.GetUserId();
                        MemberID = ss.Members.Where(m => m.Id == aspid).Select(m => m.Member_ID).First();
                    }


                    //建立 Order 物件
                    int T     = (int)currentcart.TotalAmount;
                    var order = new Models.Orders()
                    {
                        //Order_ID
                        Member_ID        = MemberID,
                        OrderDate        = DateTime.Now,
                        SubTotal         = T,
                        ValueAddTax      = System.Convert.ToInt32(T * 0.05),
                        ShippingFee      = 50,
                        Amount           = System.Convert.ToInt32(T * 1.05 + 50),
                        Consignee        = postback.Consignee,
                        ShipAddress      = postback.ShipAddress,
                        ShipMethod_ID    = 1,
                        PaymentMethod_ID = 1,
                        Status_ID        = 2,
                        Comment          = postback.ConsigneePhone
                    };

                    //將其加入 Orders資料表後,儲存變更
                    ss.Orders.Add(order);
                    ss.SaveChanges();

                    //取得購物車中OrderDetail物件
                    var orderDetails = currentcart.ToOrderDetailList(order.Order_ID);

                    //將其加入 OrderDetails 資料表後,儲存變更
                    ss.OrderDetail.AddRange(orderDetails);
                    ss.SaveChanges();
                }
                return(Content("訂購成功,感謝您訂購我們的產品  <a href='Home/Index'>回首頁</a>"));
            }
            return(View());
        }
示例#9
0
        public ActionResult Index(Models.OrderModel.Ship postback)
        {
            if (ModelState.IsValid)
            {   //取得目前購物車
                var currentcart = MVC_Carts.Models.Operation.GetCurrentCart();

                //取得目前登入使用者Id
                string userId = HttpContext.User.Identity.GetUserId();
                if (userId == null)
                {
                    return(RedirectToAction("Login", "Account"));
                }

                using (MVC_Carts.Models.CartsEntities db = new MVC_Carts.Models.CartsEntities())
                {
                    //建立Order物件
                    var order = new MVC_Carts.Models.Order()
                    {
                        UserId          = userId,
                        ReceiverName    = postback.RecieverName,
                        ReceiverPhone   = postback.RecieverPhone,
                        ReceiverAddress = postback.RecieverAddress
                    };
                    //加其入Orders資料表後,儲存變更
                    db.Orders.Add(order);
                    db.SaveChanges();

                    //取得購物車中OrderDetai物件
                    var orderDetails = currentcart.ToOrderDetailList(order.Id);

                    //更新商品庫存數量
                    for (int i = 0; i < orderDetails.Count; i++)
                    {
                        int productId = Convert.ToInt32(orderDetails[i].Id);
                        var result    = (from p in db.Products where p.Id == productId select p).FirstOrDefault();
                        result.Quantity = result.Quantity - orderDetails[i].Quantity;
                    }

                    //將其加入OrderDetails資料表後,儲存變更
                    db.OrderDetails.AddRange(orderDetails);
                    db.SaveChanges();

                    //清空購物車商品
                    currentcart.ClearCart();
                }
                //DB連線釋放
            }
            return(RedirectToAction("Success"));
        }
示例#10
0
        //Day25
        //OrderController 的Index() 定義如何將資料存入訂單資料庫(Order與OrderDetail資料表),
        //其中順序為先寫入Order後,
        //再寫入OrderDetail。
        public ActionResult Index(Models.OrderModel.Ship model)
        {
            if (this.ModelState.IsValid)
            {
                //取得目前購物車
                var CurrentCart = Models.Carts.Operation.GetCurrentCart();

                //取得目前登入使用者 Id
                var UserId = HttpContext.User.Identity.GetUserId();

                using (Models.CartsEntities1 db = new Models.CartsEntities1())
                {
                    //建立Order物件
                    var order = new Models.Order()
                    {
                        UserId          = UserId,
                        ReceiverName    = model.ReceiverName,
                        ReceiverPhone   = model.ReceiverPhone,
                        ReceiverAddress = model.ReceiverAddress
                    };


                    // 加入 Order 資料表後,儲存變更
                    db.Orders.Add(order);
                    db.SaveChanges();


                    //取得購物車中的 OrderDeatil 物件
                    var orderDetails = CurrentCart.ToOrderDetailList(order.Id);

                    //將 OrderDetails 物件,加入OrderDetail資枓表後,儲存變更。
                    db.OrderDetails.AddRange(orderDetails);
                    db.SaveChanges();
                }
                return(Content("訂購成功"));
            }

            return(View());
        }
示例#11
0
        public ActionResult Index(Models.OrderModel.Ship postback)
        {
            if (this.ModelState.IsValid)
            {
                //暫存訂單編號
                int Id = 0;
                //取得目前購物車
                var currentcart = Models.Cart.Operation.GetCurrentCart();

                //取得目前登入使用者Id
                var userId = HttpContext.User.Identity.GetUserId();

                using (Models.ShoppingCartsEntities db = new Models.ShoppingCartsEntities())
                {
                    //建立Order物件
                    var order = new Models.Order()
                    {
                        UserId          = userId,
                        ReceiverName    = postback.ReceiverName,
                        ReceiverPhone   = postback.ReceiverPhone,
                        ReceiverAddress = postback.ReceiverAddress
                    };
                    //加其入Orders資料表後,儲存變更
                    db.Orders.Add(order);
                    try
                    {
                        db.SaveChanges();
                        //取得訂單編號
                        Id = order.Id;
                    }
                    catch (DbEntityValidationException deEx)
                    {
                        foreach (var validationError in deEx.EntityValidationErrors)
                        {
                            foreach (var dbValidationError in validationError.ValidationErrors)
                            {
                                throw new Exception(dbValidationError.ErrorMessage);
                            }
                        }
                    }
                    //db.SaveChanges();

                    //取得購物車OrderDetail物件
                    var orderDetails = currentcart.ToOrderDetailList(order.Id);

                    //將其加入OrderDetails資料表後,儲存變更
                    db.OrderDetails.AddRange(orderDetails);
                    try
                    {
                        db.SaveChanges();
                    }
                    catch (DbEntityValidationException deEx)
                    {
                        foreach (var validationError in deEx.EntityValidationErrors)
                        {
                            foreach (var dbValidationError in validationError.ValidationErrors)
                            {
                                throw new Exception(dbValidationError.ErrorMessage);
                            }
                        }
                    }
                    //取得購物車選擇商品數量
                    var productAmount = currentcart.Select(c => new { c.Id, c.Quantity }).ToList();
                    //將商品庫存檢調購物車數量後,更新至資料庫
                    foreach (var item in productAmount)
                    {
                        var result = (from s in db.Products where s.Id == item.Id select s).FirstOrDefault();
                        result.Quantity = result.Quantity - item.Quantity;
                        db.SaveChanges();
                    }
                }


                currentcart.ClearCart();
                TempData["Success"] = "訂購成功";
                return(RedirectToAction("MyOrderDetail", new { id = Id }));
            }
            return(View());
        }