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)); }
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)); }