public ActionResult UpdateTableGameInShopDetail(string[] tableGameIDs, bool[] isContainedFlags, bool[] isSaleFlags, int[] Price)
        {
            string                shopID = Session["ShopID"].ToString();
            TableGame             tg;
            TableGameInShopDetail detail;
            //CheckBox陣列整理(o:舊陣列)
            Func <bool[], List <bool> > arrange = (o) =>
            {
                List <bool> n = new List <bool>();
                for (int i = 0; i < o.Length; i++)
                {
                    if (o[i] == true)
                    {
                        n.Add(true);
                        i++;
                    }
                    else
                    {
                        n.Add(false);
                    }
                }
                return(n);
            };

            for (int i = 0; i < tableGameIDs.Length; i++)
            {
                //查找此店家是否有此桌遊
                tg     = db.TableGames.Find(tableGameIDs[i]);
                detail = tg.TableGameInShopDetails.Where(m => m.ShopID == shopID).FirstOrDefault();
                //有此桌遊,進一步判斷此桌遊是否有被刪除
                if (detail != null)
                {
                    if (arrange(isContainedFlags)[i])
                    {
                        detail.IsSale = arrange(isSaleFlags)[i];
                        detail.Price  = Price[i];
                    }
                    else
                    {
                        db.TableGameInShopDetails.Remove(detail);
                    }
                }
                //無此桌遊,若後來有被新增則新增至TableGameInShopDetails
                else if (arrange(isContainedFlags)[i])
                {
                    TableGameInShopDetail d = new TableGameInShopDetail
                    {
                        ShopID      = shopID,
                        TableGameID = tableGameIDs[i],
                        IsSale      = arrange(isSaleFlags)[i],
                        Price       = Price[i]
                    };
                    db.TableGameInShopDetails.Add(d);
                }
                db.SaveChanges();
            }
            return(RedirectToAction("UpdateTableGameInShopDetail"));
        }
        public ActionResult _GetOneDetail(string tableGameID)
        {
            string    shopID = Session["ShopID"].ToString();
            TableGame tg     = db.TableGames.Find(tableGameID);
            //從傳入的桌遊,找到店家ID為shopID的店內桌遊明細
            TableGameInShopDetail detail = tg.TableGameInShopDetails.Where(m => m.ShopID == shopID).FirstOrDefault();

            //如果有找到則作為Model,沒找到則傳入新鑄造的TableGameInShopDetail
            if (detail != null)
            {
                ViewBag.isContained = true;
                return(PartialView(detail));
            }
            else
            {
                ViewBag.isContained = false;
                return(PartialView(new TableGameInShopDetail {
                    TableGameID = tableGameID, TableGame = tg, ShopID = shopID, IsSale = false, Price = 0
                }));
            }
        }