Beispiel #1
0
        public ActionResult ExchangeCoupon(string couponID)
        {
            Coupon c = db.Coupons.Find(couponID);
            Player p = db.Players.Find(Session["PlayerID"]);

            //排除不能兌換、已經兌換過的優惠券
            if (c.IsExchangable && !p.PlayerCouponDetails.Any(m => m.Coupon.Equals(c)))
            {
                //從玩家扣除使用的點數
                p.Points -= c.PointsRequired;
                //產生點數使用明細
                UsefulTools.PointRecord(p.ID, "兌換優惠券", -c.PointsRequired);
                //產生玩家優惠券明細
                PlayerCouponDetail couponDetail = new PlayerCouponDetail
                {
                    CouponID      = c.ID,
                    PlayerID      = p.ID,
                    ExchangedDate = DateTime.Now,
                    IsUsed        = false
                };
                db.PlayerCouponDetails.Add(couponDetail);
                db.SaveChanges();

                return(RedirectToAction("ShopDetailForPlayer", "Shop", new { id = c.ShopID }));
                //應該要前往店家詳細頁(shopdetailforplayer),同時更動nav的active
            }
            //優惠券已無法兌換則顯示錯誤訊息
            return(HttpNotFound());
        }
Beispiel #2
0
 public void ShowPlayerCouponDetail(PlayerCoupon _selectPlayerCoupon)
 {
     selectPlayerCoupon = _selectPlayerCoupon;
     if (playerCouponDetail == null)
     {
         GameObject item = AndaDataManager.Instance.GetItemInfoPrefab("PlayerCouponDetail");
         item = Object.Instantiate(item);
         playerCouponDetail           = item.GetComponent <PlayerCouponDetail>();
         item.transform.parent        = AndaUIManager.Instance.uIController.transform;
         item.transform.localPosition = Vector3.zero;
         item.transform.localScale    = Vector3.one;
     }
     playerCouponDetail.Open(selectPlayerCoupon);
 }
Beispiel #3
0
        //新增優惠券測試資料
        public string CreateCouponTestData(string shopID, int n)
        {
            var    players = db.Players.ToList();
            Random r       = new Random();

            for (int i = 0; i < n; i++)
            {
                int limitedAmount   = r.Next(10, 30);
                int exchangedAmount = limitedAmount * r.Next(1, 10) / 10;
                int usedAmount      = exchangedAmount * r.Next(3, 10) / 10;
                //產生一張優惠券
                Coupon coupon = new Coupon
                {
                    ID             = UsefulTools.GetNextID(db.Coupons, 1),
                    BeginDate      = DateTime.Parse("2010-10-10"),
                    ExpireDate     = DateTime.Parse("2010-10-11"),
                    ShopID         = shopID,
                    Content        = "測試用資料",
                    IsAvailable    = false,
                    PointsRequired = 1,
                    LimitedAmount  = limitedAmount
                };
                db.Coupons.Add(coupon);
                db.SaveChanges();

                //產生隨機排序的玩家列表
                players = players.OrderBy(p => Guid.NewGuid()).ToList();
                //依序兌換及使用優惠券
                for (int j = 0; j < exchangedAmount; j++)
                {
                    //產生優惠券兌換明細
                    var p      = players[j];
                    var detail = new PlayerCouponDetail
                    {
                        CouponID      = coupon.ID,
                        ExchangedDate = DateTime.Parse("2010-10-11"),
                        PlayerID      = p.ID,
                        //只使用指定數量
                        IsUsed = j <= usedAmount
                    };
                    db.PlayerCouponDetails.Add(detail);
                }
                db.SaveChanges();
            }
            return("Success");
        }