public ActionResult ShowSingleDetail(AddDessertViewModel order)
        {
            var nowDessert = Session["DessertCount"] as List<AddDessertViewModel>;
            if (!(nowDessert.Count() > 0))
            {
                return RedirectToAction("Index");
            }
            Random rad = new Random();
            string OrderID = DateTime.Now.ToString("yyyyMMddHHmmss") + rad.Next(999).ToString("000");
            if (string.IsNullOrEmpty(order.DeliveryAddress))
            {
                ModelState.AddModelError("DeliveryAddress", "請填寫送貨地址");
            }
            if (ModelState.IsValid)
            {
                db.Orders.Add(new Orders()
                {
                    Account = User.Identity.Name,
                    DeliveryAddress = order.DeliveryAddress,
                    Orderstat = 1,
                    OrderID = OrderID,
                    OrderDate = DateTime.Today.Date,
                });
                foreach (var item in nowDessert)
                {
                    string detailID = DateTime.Now.ToString("yyyyMMddHHmmss");
                    var orderDetail = db.OrderDetails.Where(x => x.DetailID.StartsWith(detailID));

                    if (orderDetail.Count() > 0)
                    {
                        detailID = detailID + (Convert.ToInt32(orderDetail.FirstOrDefault().DetailID.Substring(13, 4)) + 1).ToString("0000");
                    }
                    else
                    {
                        detailID = detailID + rad.Next(9999).ToString("0000");
                    }
                    db.OrderDetails.Add(new OrderDetails()
                    {
                        DessertID = item.DessertID,
                        DetailID = detailID,
                        DessertAmount = item.DessertAmount,
                        GiftID = "G999",
                        OrderID = OrderID,
                    });
                    db.SaveChanges();
                }
                TempData["BuySuccess"] = "購買成功";
                Session.Clear();
                return RedirectToAction("Index");
            }
            ShowTotal();
            return View(order);
        }
        public ActionResult AddDessertCount(AddDessertViewModel addDessert)
        {
            if (ModelState.IsValid)
            {
                List<AddDessertViewModel> BuyDessert = Session["DessertCount"] as List<AddDessertViewModel>;
               var checkDessert = BuyDessert.Where(x => x.DessertID == addDessert.DessertID);
               if (checkDessert.Count() > 0)
               {
                   checkDessert.FirstOrDefault().DessertAmount = addDessert.DessertAmount;
               }
               {
                    BuyDessert.Add(addDessert);
               }

               return RedirectToAction("Index");
            }
            var selectDessert = db.Dessert.Find(addDessert.DessertID);
            addDessert = AddModel(selectDessert);
            return View(addDessert);
        }
 public ActionResult ShowDessert(string GiftID)
 {
     var gift = db.Gift.Find(GiftID);
     var dessertCount = Session["DessertCount"] as List<AddDessertViewModel>;
     if (Session["Gift"] != null)
     {
         Session["Gift"] = null;
         dessertCount.Clear();
     }
     if (Session["Gift"] == null)
     {
         Session["Gift"] = new AddDessertViewModel()
         {
             GiftID = gift.GiftID,
             PieCount = gift.PieCount,
             CookieCount = gift.CookieCount,
             CakeCount = gift.CakeCount
         };
     }
     AddDessertViewModel GiftModel = Session["Gift"] as AddDessertViewModel;
     return View(GiftModel);
 }
        public ActionResult AddDessertCount(AddDessertViewModel addDessert)
        {
            List<AddDessertViewModel> BuyDessert = Session["DessertCount"] as List<AddDessertViewModel>;
            int totalCookie = BuyDessert.Where(x => x.DessertKind == addDessert.DessertKind).Sum(x => x.DessertAmount);
                if (addDessert.DessertKind == "Cookie")
                {
                    if (addDessert.DessertAmount + totalCookie > addDessert.CookieCount)
                    {
                        if (addDessert.CookieCount == 0)
                        {
                            ModelState.AddModelError("DessertAmount", "此禮盒不能選餅乾");
                        }
                        else
                        {
                            ModelState.AddModelError("DessertAmount", "餅乾的數量超過" + addDessert.CookieCount + "個");
                        }

                    }
                }
                if (addDessert.DessertKind == "Pie")
                {
                    if (addDessert.DessertAmount + totalCookie > addDessert.PieCount)
                    {
                        if (addDessert.PieCount == 0)
                        {
                            ModelState.AddModelError("DessertAmount", "此禮盒不能選派");
                        }
                        {
                            ModelState.AddModelError("DessertAmount", "派的數量超過" + addDessert.PieCount + "個");
                        }

                    }
                }
                if (addDessert.DessertKind == "Cake")
                {
                    if (addDessert.DessertAmount + totalCookie > addDessert.CakeCount)
                    {
                        if (addDessert.CakeCount == 0)
                        {
                            ModelState.AddModelError("DessertAmount", "此禮盒不能選蛋糕");
                        }
                        {
                            ModelState.AddModelError("DessertAmount", "蛋糕的數量超過" + addDessert.CakeCount + "個");
                        }

                    }
                }
            if (ModelState.IsValid)
            {
                var checkDessert = BuyDessert.Where(x => x.DessertID == addDessert.DessertID);
                if (checkDessert.Count() > 0)
                {
                    checkDessert.FirstOrDefault().DessertAmount = addDessert.DessertAmount;
                }
                {
                    BuyDessert.Add(addDessert);
                }

                return RedirectToAction("ShowDessert");
            }
            var selectDessert = db.Dessert.Find(addDessert.DessertID);
            addDessert = AddModel(selectDessert);
            AddDessertViewModel GiftModel = Session["Gift"] as AddDessertViewModel;
            addDessert.GiftID = GiftModel.GiftID;
            addDessert.PieCount = GiftModel.PieCount;
            addDessert.CookieCount = GiftModel.CookieCount;
            addDessert.CakeCount = GiftModel.CakeCount;
            return View(addDessert);
        }
        public ActionResult ShowBoxDetail(AddDessertViewModel order)
        {
            var nowDessert = Session["DessertCount"] as List<AddDessertViewModel>;
            var nowGift = Session["Gift"] as AddDessertViewModel;
            Random rad = new Random();
            string OrderID = DateTime.Now.ToString("yyyyMMddHHmmss") + rad.Next(999).ToString("000");
            if (string.IsNullOrEmpty(order.DeliveryAddress))
            {
                ModelState.AddModelError("DeliveryAddress", "請填寫送貨地址");
            }
            #region
            if (ModelState.IsValid)
            {
                db.Orders.Add(new Orders()
                {
                    Account = User.Identity.Name,
                    DeliveryAddress = order.DeliveryAddress,
                    Orderstat = 1,
                    OrderID = OrderID,
                    OrderDate = DateTime.Today.Date,
                });
                foreach (var item in nowDessert)
                {
                    string detailID = DateTime.Now.ToString("yyyyMMddHHmmss");
                    do
                    {
                        detailID = detailID + rad.Next(9999).ToString("0000");
                    } while (db.OrderDetails.Where(x => x.DetailID == detailID).Count() > 0);

                    db.OrderDetails.Add(new OrderDetails()
                    {
                        DessertID = item.DessertID,
                        DetailID = detailID,
                        DessertAmount = item.DessertAmount,
                        GiftID = nowGift.GiftID,
                        OrderID = OrderID,
                    });
                    db.SaveChanges();
                }
                TempData["BuySuccess"] = "購買成功";
                Session.Clear();
                return RedirectToAction("Index");
            }
            #endregion
            ShowTotal();
            return View(order);
        }