Ejemplo n.º 1
0
        public ActionResult PendingChallenges_Update([DataSourceRequest]DataSourceRequest request, PendingChallengesViewModel model)
        {
            string userID = User.Identity.GetUserId();
            int id = System.Convert.ToInt32(userID);
            Users.User user = Users.User.Load(id);

            if(model != null && ModelState.IsValid)
            {
                ChallengeSchedule challengeSchedule = new ChallengeSchedule()
                {
                    PlayerId = user.Id,
                    ChallengeId = model.challengeId,
                    SuggestedDateTime = model.SuggestedDateTime
                };

                challengeSchedule.Save();
            }

            return Json(new[] { model }.ToDataSourceResult(request, ModelState));
        }
Ejemplo n.º 2
0
        public ActionResult CreateChallenge_Update([DataSourceRequest]DataSourceRequest request, LadderPlayersViewModel model, int ladderId)
        {
            // create challenge with another player
            if (model != null && ModelState.IsValid)
            {
                string userID = User.Identity.GetUserId();
                int id = System.Convert.ToInt32(userID);
                Users.User user = Users.User.Load(id);
                // create user as a challenge player
                ChallengePlayer userPlayer = new ChallengePlayer()
                {
                    PlayerId = user.Id
                };

                userPlayer.Save();
                // create opponent as a challenge player
                ChallengePlayer opponentPlayer = new ChallengePlayer()
                {
                    PlayerId = LadderPlayer.LoadById(model.LadderPlayerId).PlayerId
                };

                opponentPlayer.Save();
                // create challenge
                // update challenge fields and players within challenge
                Challenge challenge = new Challenge()
                {
                    MatchTypeId = Ladder.LoadById(ladderId).MatchTypeId,
                    MatchFormat = MatchFormat.LoadById(model.MatchFormatId),
                    Facility = Facility.LoadById(model.FacilityId),
                    Court = Court.LoadById(model.CourtId),
                    Status = ChallengeStatusCollection.LoadAll().Where(p => p.Status == "pending").First(),
                    LadderId = ladderId,
                    Players = { userPlayer, opponentPlayer }
                };
                challenge.Save();

                // assign players ChallengeId to the new challenge's Id
                userPlayer.ChallengeId = challenge.Id;
                opponentPlayer.ChallengeId = challenge.Id;

                opponentPlayer.Save();
                userPlayer.Save();

                // create challenge schedule and update SuggestDateTime
                ChallengeSchedule schedule = new ChallengeSchedule()
                {
                    ChallengeId = challenge.Id,
                    PlayerId = user.Id,
                    SuggestedDateTime = model.SuggestDateTime
                };
                schedule.Save();

            }
            RedirectToAction("Challenges", "Player");
            return Json(new[] { model }.ToDataSourceResult(request, ModelState));
        }