コード例 #1
0
        public ActionResult MgShopCreate(Shop shop, HttpPostedFileBase[] photos)
        {
            //檢查帳號是否重複
            if (db.Shops.Any(m => m.Account == shop.Account))
            {
                ModelState["Account"].Errors.Add("此帳號已經有人使用");
            }
            //驗證帳號密碼是否符合規則
            UsefulTools.RegisterValidate(shop.Account, ModelState["Account"].Errors.Add, false, false);
            UsefulTools.RegisterValidate(shop.Password, ModelState["Password"].Errors.Add, true, true);

            if (ModelState.IsValid)
            {
                //填入必要資料
                shop.ID               = UsefulTools.GetNextID(db.Shops, 1);
                shop.Password         = Hash.PwdHash(shop.Password);
                shop.AccumulatedHours = 0;
                db.Shops.Add(shop);
                db.SaveChanges();

                //添加圖片
                PhotoManager.Create(shop.ID, photos);

                return(RedirectToAction("ShopIndex"));
            }
            ViewBag.DistrictID = new SelectList(db.Districts, "ID", "DistrictName");
            ViewBag.CityID     = new SelectList(db.Cities, "ID", "CityName", db.Districts.Find(shop.DistrictID).CityID);
            ViewBag.AreaScale  = new SelectList(new[]
            {
                new { Option = "大" },
                new { Option = "中" },
                new { Option = "小" }
            }, "Option", "Option");
            return(View(shop));
        }
コード例 #2
0
        public ActionResult PlayerCreate(Player player, string passwordConfirm, int CityID, HttpPostedFileBase photo)
        {
            //檢查確認密碼是否輸入正確
            if (passwordConfirm != player.Password)
            {
                ModelState["Password"].Errors.Add("輸入的密碼和確認密碼不相符");
            }
            //檢查帳號是否重複
            if (db.Players.Any(m => m.Account == player.Account))
            {
                ModelState["Account"].Errors.Add("此帳號已經有人使用");
            }
            //檢查帳號及密碼是否符合規則
            UsefulTools.RegisterValidate(player.Account, ModelState["Account"].Errors.Add, false, false);
            UsefulTools.RegisterValidate(player.Password, ModelState["Password"].Errors.Add, true, false);
            //填入預設值
            player.ID           = UsefulTools.GetNextID(db.Players, 2);
            player.Points       = 0;
            player.IsBanned     = false;
            player.IsEmailValid = false;

            if (ModelState.IsValid)
            {
                player.Password = Hash.PwdHash(player.Password);
                db.Players.Add(player);
                db.SaveChanges();
                //儲存圖片(先將photo變為陣列再傳入)
                PhotoManager.Create(player.ID, new HttpPostedFileBase[] { photo });

                return(RedirectToAction("EmailValidate", "EmailValidate", new { Email = player.Email, id = player.ID }));
            }
            ViewBag.CityID     = new SelectList(db.Cities, "ID", "CityName", CityID);
            ViewBag.DistrictID = new SelectList(db.Districts, "ID", "DistrictName", player.DistrictID);
            return(View(player));
        }
コード例 #3
0
ファイル: ToolController.cs プロジェクト: shane23675/TGIS
        //新增玩家測試資料
        public string CreatePlayerTestData(int n)
        {
            var    districts = db.Districts.ToList();
            Random r         = new Random();

            for (int i = 0; i < n; i++)
            {
                db.Players.Add(new Player
                {
                    ID           = UsefulTools.GetNextID(db.Players, 2),
                    Account      = "testPlayer999",
                    Password     = "******",
                    Birthday     = DateTime.Today.AddYears(-r.Next(8, 55)),
                    Points       = 0,
                    IsBanned     = false,
                    IsEmailValid = true,
                    Email        = "*****@*****.**",
                    DistrictID   = districts[r.Next(0, districts.Count)].ID,
                    Gender       = r.Next(0, 2) == 1,
                    NickName     = "測試用資料"
                });
                db.SaveChanges();
            }
            return("Success");
        }
コード例 #4
0
ファイル: TagController.cs プロジェクト: shane23675/TGIS
        public ActionResult TagCreate(string TagName, string TagID)
        {
            var tag = new Tag
            {
                TagName = TagName,
                ID      = UsefulTools.GetNextID(db.Tags.ToList().Where(t => t.ID[0].ToString() == TagID), 1)
            };

            db.Tags.Add(tag);
            db.SaveChanges();
            return(RedirectToAction("_TagList"));
        }
コード例 #5
0
 public ActionResult CreateAnnoun(Announcement ann)
 {
     if (ModelState.IsValid)
     {
         //填入必要資料
         ann.ID = UsefulTools.GetNextID(db.Announcements, 2);
         ann.AdministratorID = Session["AdminID"].ToString();
         ann.AnnouncedDate   = DateTime.Today;
         db.Announcements.Add(ann);
         db.SaveChanges();
     }
     return(RedirectToAction("AnnouncementIndexForAdmin"));
 }
コード例 #6
0
ファイル: ToolController.cs プロジェクト: shane23675/TGIS
        //新增優惠券測試資料
        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");
        }
コード例 #7
0
ファイル: ToolController.cs プロジェクト: shane23675/TGIS
        //新增揪桌測試資料的
        public string CreateTeamTestData(string shopID, int n)
        {
            Random r       = new Random();
            var    players = db.Players.ToList();

            //製造出對應筆數的Team及其相關資料
            for (int i = 0; i < n; i++)
            {
                //將玩家集合打亂
                players = players.OrderBy(p => Guid.NewGuid()).ToList();
                string   teamID       = UsefulTools.GetNextID(db.Teams, 1);
                int      playerAmount = r.Next(2, 11);
                DateTime playDate     = DateTime.Today.AddDays(r.Next(-90, -1)).Date;
                Team     team         = new Team
                {
                    ID                 = teamID,
                    ShopID             = shopID,
                    Title              = "測試用資料",
                    MinPlayer          = playerAmount,
                    MaxPlayer          = playerAmount,
                    EstimatedCost      = 0,
                    IsCanceled         = false,
                    IsClosed           = false,
                    IsConfirmedByShop  = true,
                    IsRequestSent      = true,
                    LeaderPlayerID     = players[0].ID,
                    PlayDate           = playDate,
                    ParticipateEndDate = playDate.AddDays(-1),
                    PlayBeginTime      = new TimeSpan(8, 0, 0),
                    PlayEndTime        = new TimeSpan(10, 0, 0),
                    Notes              = "測試用"
                };
                db.Teams.Add(team);
                db.SaveChanges();

                //存入後立刻取出並填入其他玩家資料
                Team hotNewTeam = db.Teams.Find(teamID);
                for (int j = 1; j < playerAmount; j++)
                {
                    hotNewTeam.OtherPlayers.Add(players[j]);
                }
                db.SaveChanges();
            }
            return("Success");
        }
コード例 #8
0
        public ActionResult OfferCreate(NormalOffer normalOffer, HttpPostedFileBase[] photos)
        {
            OfferTimeCheck(normalOffer);
            if (ModelState.IsValid)
            {
                //填入預設值
                normalOffer.ID     = UsefulTools.GetNextID(db.NormalOffers, 1);
                normalOffer.ShopID = Session["ShopID"].ToString();
                normalOffer.Clicks = 0;

                db.NormalOffers.Add(normalOffer);
                db.SaveChanges();
                //存入圖片
                PhotoManager.Create(normalOffer.ID, photos);
                return(RedirectToAction("OfferListForShop"));
            }
            return(View());
        }
コード例 #9
0
 public ActionResult AdminCreate(Administrator administrator, string pwdConfirm)
 {
     //驗證帳號密碼格式
     UsefulTools.RegisterValidate(administrator.Account, msg => ModelState["Account"].Errors.Add(msg), false, false);
     UsefulTools.RegisterValidate(administrator.Password, msg => ModelState["Password"].Errors.Add(msg), true, false);
     if (administrator.Password != pwdConfirm)
     {
         ModelState.AddModelError("Password", "密碼確認和密碼欄位不相符");
     }
     if (ModelState.IsValid)
     {
         administrator.ID = UsefulTools.GetNextID(db.Administrators, 1);
         db.Administrators.Add(administrator);
         db.SaveChanges();
         return(RedirectToAction("AdminIndex"));
     }
     return(View(administrator));
 }
コード例 #10
0
ファイル: CouponController.cs プロジェクト: shane23675/TGIS
        public ActionResult CouponCreate(Coupon coupon, HttpPostedFileBase[] photos)
        {
            //填入預設值
            coupon.ID          = UsefulTools.GetNextID(db.Coupons, 1);
            coupon.ShopID      = (string)Session["ShopID"];
            coupon.IsAvailable = false;

            CouponCheck(coupon);
            if (ModelState.IsValid)
            {
                db.Coupons.Add(coupon);
                db.SaveChanges();

                //加入照片
                PhotoManager.Create(coupon.ID, photos);
                return(RedirectToAction("CouponIndexForShop"));
            }
            return(View());
        }
コード例 #11
0
ファイル: TeamController.cs プロジェクト: shane23675/TGIS
        public ActionResult TeamCreate(Team team, int CityID, int DistrictID)
        {
            //檢查報名截止日期是否在現在時間之後
            if (team.ParticipateEndDate <= DateTime.Now)
            {
                ModelState["ParticipateEndDate"].Errors.Add("報名截止日期必須在現在時間之後");
            }
            //檢查遊戲日期是否在報名截止日期之後
            if (team.PlayDate <= team.ParticipateEndDate)
            {
                ModelState["PlayDate"].Errors.Add("遊戲日期必須在報名截止日期之後");
            }
            //檢查結束時間是否在開始時間之後
            if (team.PlayBeginTime >= team.PlayEndTime)
            {
                ModelState["PlayEndTime"].Errors.Add("結束時間必須在開始時間之後");
            }
            //檢查最高人數是否不小於最低人數
            if (team.MaxPlayer < team.MinPlayer)
            {
                ModelState["MaxPlayer"].Errors.Add("最高人數不得小於最低人數");
            }

            //驗證主體
            if (ModelState.IsValid)
            {
                //填入必要資料後存入
                team.ID             = UsefulTools.GetNextID(db.Teams, 1);
                team.LeaderPlayerID = Session["PlayerID"].ToString();
                db.Teams.Add(team);
                db.SaveChanges();
                return(RedirectToAction("GetTeamList", new { usage = "TeamIndex" }));
            }
            //驗證失敗
            ViewBag.teamID     = team.ID;
            ViewBag.CityID     = new SelectList(db.Cities, "ID", "CityName", CityID);
            ViewBag.DistrictID = new SelectList(db.Districts, "ID", "DistrictName", DistrictID);
            return(View(team));
        }
コード例 #12
0
        public ActionResult CreateTableGame(TableGame newTableGame, string[] selectedCategories, HttpPostedFileBase[] photos, string[] links)
        {
            //無法通過驗證則顯示錯誤訊息
            if (!ModelState.IsValid)
            {
                UpdateTableGamePreparaion();
                return(View());
            }
            //儲存newTableGame
            newTableGame.ID = UsefulTools.GetNextID(db.TableGames, 1);
            db.TableGames.Add(newTableGame);
            db.SaveChanges();
            foreach (string sc in selectedCategories)
            {
                newTableGame.GameCategoryTags.Add(db.Tags.Find(sc));
                db.SaveChanges();
            }
            //調用PhotoManager中的方法來儲存傳入的圖片
            PhotoManager.Create(newTableGame.ID, photos);
            //儲存相關教學連結
            RelevantLinkManager.Create(newTableGame.ID, links);

            return(RedirectToAction("ShowTableGameListForAdmin"));
        }